java--final关键字

关键字final作用

final的意思是最终的、不可变的
1、修饰类

//当final修饰类时,final类的含义是不可被继承 
final class A11{}
class B11 extends A11{}//语法错误

实现类不能被继承的方法2

技巧实现不能被继承,构造器私有—私有构造器

class A11{
	private A11(){}
}
class B11 extends A11{}//语法错误

2、修饰方法

class A11{
	//方法上添加final表示这个方法不可以被覆盖,是可以被继承的
	public final void pp(){}
}
class B11 extends A11{
	public void pp(){}//语法报错
}

3、修饰属性

  • 声明属性的同时赋初值
  • 构造器时赋初值
  • final修饰变量时,变量必须初始化,并且不能被修改。初始化时可以在定义final变量时直接初始化或者在构造器中初始化
  • final不但能修饰属性,还能修饰局部变量
class A11{
	//final属性表示属性一旦赋值则不允许修改,跟继承无关
	public final int age=100;
	public void pp(){
		this.age=999;//语法报错
		System.out.println(this.age);
	}
}

final属性的初始值可以在声明的同时赋值或者在构造器中进行赋值且只有这两种方式


class A11{
	public final int age;
	public A11(){
		this.age=999;
	}
	public A11(int age){
		this.age=age;
	}
	public void pp(){
		//this.age=999;//语法报错
		System.out.println(this.age);
	}
}

4、修饰局部变量

//final除了可以修饰属性外,还允许修饰局部变量
public void pp(){
	final String name="yanjun";
	//name="zhangsan";语法错误
	System.out.println(name);
}


public void pp(){
	final String name;
	name="yanjun";
	System.out.println(name);	
}

总结final

  • final 属性时,可以声明的同时直接赋值或者在构造器中赋值
  • final临时变量,可以声明的同时赋值或者在第一次使用之前进行赋值
  • 注意:final类型的变量一旦赋值则不允许修改,但是如果是复杂类型是不允许修改地址,但是可以修改属性
  • final方法表示这个方法不允许在子类中重新定义(覆盖\重写)
  • final类表示这个类不允许被继承
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值