博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java-final修饰符
阅读量:2493 次
发布时间:2019-05-11

本文共 1632 字,大约阅读时间需要 5 分钟。

  最近小咸儿在学习有关Java基础的知识,才发现多次学习下来,每次都能有不同的体会和理解问题的角度。今天特将有关学习final修饰符的内容总结下来。

final修饰符

是什么

在这里插入图片描述

   final关键字可用于修饰类、变量和方法

  • final修饰类:不能被继承
  • final修饰变量:初始化赋值后,则不可以改变
  • final修饰方法:不能被重写

  final类

  当使用final修饰类时,则表明该类没有子类,即不能被继承

  不可变类

  不可变类就是说创建该类的实例后,该实例的实例变量就是不可变的

public class Address {	private final String detail;	private final String postCode;	// 构造器中初始化这两个实例变量	public Address()	{		this.detail = "";		this.postCode = "";	}	public Address(String detail, String postCode)	{		this.detail = detail;		this.postCode = postCode;	}	// 仅为两个实例变量提供getter方法	public String getDetail()	{		return this.detail;	}	public String getPostCode()	{		return this.postCode;	}}

  在下面这种情况下,当创建不可变类时,如果它包含成员变量的类型是可变的,那么其对象的成员变量的值依然是可变的。

示例:

class Name{	private String firstName;	private String lastName;	public Name() {}	public Name(String firstName, String lastName)	{		this.firstName = firstName;		this.lastName = lastName;	}	// setter方法	public void setFirstName(String firstName)	{		this.firstName = firstName;	}	public void setLastName(String LastName)	{		this.lastName= lastName;	}	// getter方法	public String getFirstName()	{		return this.firstName;	}	public String getLastName()	{		return this.lastName;	}}public class Person{	private final Name name;	public Person(Name name)	{		this.name = name;	}	public Name getName()	{		return name;	}	public static void main(String[] args)	{		Name n = new Name("悟空", "孙");		Person p = new Person(n);		// Person对象的name的firstName值为“悟空”		System.out.println(p.getName().getFirstName());		// 改变Person对象的name值的firstName值		n.setFirstName("八戒");		// Person对象的name的firstName值被改为“八戒”		System.out.println(p.getName().getFirstName());	}}

转载地址:http://gcerb.baihongyu.com/

你可能感兴趣的文章
vue 设计结构
查看>>
Sqlerver2005+按照ID分组取前几条
查看>>
Python的编码和解码
查看>>
docker
查看>>
停车场系统安全岛设计施工要求
查看>>
Docker实战
查看>>
asp.net core结合Gitlab-CI实现自动化部署
查看>>
RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.7 版本发布
查看>>
EasyNVR H5无插件摄像机直播解决方案前端解析之:关于直播页面和视频列表页面切换的问题...
查看>>
django搭建一个小型的服务器运维网站-拿来即用的bootstrap模板
查看>>
redis事务
查看>>
Java_基础语法之dowhile语句
查看>>
HDU 2175 汉诺塔IX
查看>>
PAT 甲级 1021 Deepest Root
查看>>
查找代码错误.java
查看>>
vc获取特殊路径(SpecialFolder)
查看>>
单例模式
查看>>
int(3)和int(11)区别
查看>>
201521123061 《Java程序设计》第十一周学习总结
查看>>
代码小思考
查看>>