final关键字的使用


  

1 final修饰类

/**
 * 1) final修饰类
 * 		表示类是最终类, 不能被继承 ,不能作为父类
 * 		String , System 类就是final修饰的最终类
 */
public final class Father {

}
//报错
class son extends ~~Father~~ {

}

如果没有写构造方法,z会报错,如果写了有参构造,构造方法z也必须赋值

2 final修饰字段

/**
 * 2) final修饰字段(成员变量)
 * 		必须显示的初始化, 手动的赋初值
 * 		final字段不能被重新赋值
 * 		final一般与static同时使用,所有字母都大写,称为final常量
 */
public class Father2 {
	int x ; 			//实例变量, 默认初始化为0
	
	final int y = 123;  		//final字段在定义时显示初始化
	final int z ;
	public Father2() {
		z = 456; 				//final字段,也可以在构造方法中手动的赋值
	}
	
	public void m1() {
		x = 66;
//		y = 666;				//final字段不能被重新赋值
	}
	
	public static final double PI = 3.1415926;
}

3 final修饰方法

/**
 * 3)final修饰方法
 * 		表示该方法是最终方法,不能被子类覆盖(重写), 可以被子类继承
 *
 */
public class Father3 {

	public final void m1(int x ) {
		System.out.println(1);
	}
}

class Son3 extends Father3 {

//	@Override
//	public void m1(int x) {
//		super.m1(x);
//	}

}
class  Test{
    public static void main(String[] args) {
        new Son3().m1(1);
    }
}

4 final修饰局部变量

/**
 * 4) final修饰局部变量
 * 		一旦初始化完成, 就不能再修改
 *
 */
public class Test04 {

	public static void main(String[] args) {
		int x ; 			//局部变量
		x = 10;
		x = 101;
		
		final int y ;		//final修饰局部变量
		y = 20;
//		y = 202;			//final局部变量有了初始值后就不能再赋值了
		
		//final修饰引用类型变量
		final Person p1 = new Person("lisi", 18, "女");
		//final修饰的是p1变量, 不能给p1变量重新赋值, 即p1变量不能再指向其他对象了
//		p1 = new Person("lisisi", 20, "女");
		//修改p1的字段值
		p1.name = "lisisi";
	}
}

5 final 修饰方法形参

/**
 * 5) final修饰方法形参
 * 		在方法体中不能修改final形参的值, 因为在调用方法时,已经给final形参赋值了
 * @author 动力节点老崔
 *
 */
public class Test05 {

	public static void main(String[] args) {
		sm(10, 20);
	}

	public static void sm(int x , final int y) {
		x = 101;
//		y = 202;
	}
}

5 final关键字总结

  final关键字修饰类, 修饰字段,修饰方法,修饰局部变量,修饰方法形参

  1)final修饰类表示最终类, 不能被继承
  2)final修饰字段,必须显示的初始化,即手动的赋初始值, 不能被修改. 一般情况下,final与static同时使用,所有字母都大写,称为final常量
  3)final修饰方法, 不能被子类覆盖(重写),可以被继承
  4)final修饰局部变量,一旦初始化完成就不能再修改,注意修饰引用类型变量时,是指该变量不能再指向其他对象,可以修改它的字段值
  5)final修饰方法形参, 在方法体中能对final形参重新赋值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值