java关键字final

一、final关键字
1.final是java的一个关键字
2.final意为“最终的”,“不可变的”
3.final修饰的局部变量,一旦赋值不能重新赋值
4.final修饰的变量,只能赋一次值。
5.final修饰的方法无法被覆盖/重写。
6.final修饰的类无法继承
6.final控制不了能不能调用的问题
7.final修饰的引用:
该引用只能指向一个对象,并且它只能永远指向该对象,无法再指向其他对象。
并且在该方法执行过程中,该引用指向对象之后,该对象不会被垃圾回收站回收,
直到当前方法结束,才会释放空间
8.虽然final的引用指向对象A后,不能再重新指向对象B,但是对象A内部的数据可以被修改
9.final修饰的实例变量,系统不会赋默认值,程序员必须手动赋值,这个手动赋值在变量后面赋值也可以,在构造方法中赋值也可以。如:

 class Chinese {
	  
	  final String name;
	  final String ID;
	  int age;
	  public static final String CHINA_NATIONALITY = "中国";
}	

10.final修饰的类变量必须在声明的同时初始化
在这里插入图片描述
没有初始化i,编译不通过;
在这里插入图片描述
初始化i后,编译通过;
实际上,static final联合修饰的实例变量可以视为“常量”,
11.常量:实际上常量和静态变量一样,都是存储在方法区,并且都是在类加载时初始化。
常量一般都是公共的、公开的:public的*/
代码演示:

/*练习关键字final以及数据类型*/

package demo;

public class finalDemo{
	public static void main(String[] args) {
	
		Chinese Zhangsan = new Chinese("张三","412725",24);
		System.out.println("国籍:"+Zhangsan.CHINA_NATIONALITY);
		System.out.println("姓名:"+Zhangsan.name+"\n"+"身份证号:"+Zhangsan.ID+"\n"+"年龄:"+Zhangsan.age);	
	}
	
}
  class Chinese {
	  
	  final String name;
	  final String ID;
	  int age;
	  public static final String CHINA_NATIONALITY = "中国";
	
	 public Chinese(String name,String ID,int age) {
		 this.name = name;
		 this.ID = ID;
		 this.age = age;
	 }
  }

输出结果:
国籍:中国
姓名:张三
身份证号:412725
年龄:24

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值