ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

final关键字

2022-02-07 09:31:25  阅读:196  来源: 互联网

标签:常量 COUNTRY public 关键字 static 修饰 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有