final和static关键字一
final
1. 被fina修饰的类,不能被继承;
2. 被final修饰的方法,不能被重写;
3. 被final修饰的变量,不能被再次赋值,意思是被final修饰的是常量。
常量:
字面值常量:
- 整型常量:10,
- 小数常量:10.1
- 字符(串)常量:“abdc”
- 布尔常量:true
- 空常量:null
自定义常量:
- 被final修饰的就是自定义常量,这个值不能再被继续赋值,程序每active一次,这个值就是永久固定的了。
- 约定俗成的规则(如何命名final常量):
所有的字母都大写,如果多个单词,中间用下划线隔开;
例如:JAVA_HOME
package final_demo; public class Demo1 { public static void main(String[] args) { int a = 10; System.out.println(a); final int b = 10; // b = 20; //The final local variable b // cannot be assigned. It must be blank and not using a compound assignment System.out.println(b); } }
final 修饰的数据类型:
基本数据类型:
int, double;
final int/ final double.
引用数据类型
类:类以及类以内的成员变量
数组:ArrayList
package final_demo; import java.util.ArrayList; public class Demo2 { public static void main(String[] args) { final ArrayList<String> A1_FINAL = new ArrayList<String>(); A1_FINAL.add(" "); // A1_FINAL = null; //The final local variable A1_FINAL cannot be assigned. //It must be blank and not using a compound assignment final ArrayList<String> A2_FINAL = null; A2_FINAL.add(" "); A2_FINAL = null; //The final local variable A1_FINAL cannot be assigned. //It must be blank and not using a compound assignment //去掉final就可以不报错了。
} }
接口: