其他分享
首页 > 其他分享> > final关键字

final关键字

作者:互联网

1 修饰属性

1.1 常量

被final修饰的属性 称之为常量

常量值不能更改

通常在定义的时候赋值

或者

在构造方法中赋值

以上两种方式都是为了保证 在使用之前 常量是有值的

常量名字全部大写,多个单词使用下划线分割 PI COUNTRY_NAME

package com.qfedu.test4;
/**
 * 	被final修饰的属性 称之为常量
 * 	常量值不能更改
 * 	通常在定义的时候赋值
 * 	或者
 * 	在构造方法中赋值
 * 	以上两种方式都是为了保证  在使用之前 常量是有值的
 * 	
 * 	常量名字全部大写,多个单词使用下划线分割    PI  COUNTRY_NAME
 *
 */
public class FinalField {
	final double PI = 3.14;
	final String COUNTRY_NAME;
	String name;
	public FinalField() {
		COUNTRY_NAME = "中华人民共和国";
	}
	
	public FinalField(String name) {
		COUNTRY_NAME = "中华人民共和国";
	}
	
	public static void main(String[] args) {
		FinalField ff = new FinalField();
		System.out.println(ff.PI);
//		ff.pi = 31.4; 只能赋值一次
		// 如果不小心将pi的取值 错误修改 那么
		// 所计算的数值都将是错的
		// 所以 像一些固定的值 我们不应该让操作者可以随意改变
		// 适用final修饰
	}
}

 

1.2 静态常量

被final修饰的属性 值是不能改变的

通常这样的值 也没有必要存在多份

所以 我们可以再加上静态关键 static

static final 修饰的属性 静态常量 值不能改变 只存在一份

静态常量通常在定义的时候赋值

或者

在静态代码块中赋值

以上两种方式 同样是为了保证 在使用之前 静态常量的有值的

package com.qfedu.test4;
/**
 * 	被final修饰的属性 值是不能改变的
 * 	通常这样的值 也没有必要存在多份 
 * 	所以 我们可以再加上静态关键 static
 * 	static final 修饰的属性 静态常量  值不能改变 只存在一份
 * 
 * 	静态常量通常在定义的时候赋值
 * 	或者 
 * 	在静态代码块中赋值
 * 
 * 	以上两种方式 同样是为了保证 在使用之前 静态常量的有值的
 *
 */
public class FinalField2 {
	public static final double PI = 3.14;
	static final String COUNTRY_NAME;
	static {
		COUNTRY_NAME = "中华人民共和国";
	}
	public static void main(String[] args) {
		System.out.println(FinalField2.PI);
		System.out.println(FinalField2.COUNTRY_NAME);
	}
}

 

1.3 修饰方法

被final修饰的方法 不能被子类重写

 

package com.qfedu.test4;
/**
 * 	被final修饰的方法 不能被子类重写
 *
 */
public class A {
	public final void m1() {
		System.out.println("A类普通方法m1");
	}
	
	public void m2() {
		System.out.println("A类普通方法m2");
	}
	
}
class B extends A{
//	@Override
//	public void m1() {
//		super.m1();
//	}
	
	@Override
	public void m2() {
		super.m2();
	}
	
}

1.4 修饰类

使用final修饰类 表示此类不能被继承

我们所使用的String类就是final修饰的

package com.qfedu.test4;
/**
 * 	使用final修饰类  表示此类不能被继承	
 * 	我们所使用的String类就是final修饰的
 *
 */
public final  class C {

}

//class D extends C{ 编译报错 因为C类使用final修饰,不能继承
//	
//}

 

标签:常量,COUNTRY,public,关键字,static,修饰,final
来源: https://blog.csdn.net/m0_66763943/article/details/122804251