Java的常量及final修饰符
常量
-
常量(Constant):初始化(initialize)后不能再改变的值!不会变动的值。
-
常量可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
-
final 常量名 = 值;
-
final double PI = 3.14;
-
常用名一般使用大写字符。
package com.cnblogs;
public class MyTest {
final double ADC = 500.0;
final static double PI = 3.14;
public static void main(String args[]) {
MyTest qi = new MyTest();
System.out.println(qi.ADC);
System.out.println(PI);
}
}
final修饰符
-
final可以修饰类,方法,成员变量,局部变量。
-
final修饰类,那么这个类将不能继承,也就是太监类,有爹没儿。例如String类就是一个不可改变的类。特别提醒,final修饰的类,其属性和方法不是默认final修饰的。
-
final修饰类 或 方法的时候,不能与abstract修饰词同时使用,编译器会报错。因为final修饰的是不可改变,而abstract修饰的方法或者类。是希望被继承,覆盖重写。
-
final修饰成员变量时,需要注意,初始化,赋值。因为final修饰后的成员变量,系统不会给他默认赋值。也就是说 final string str;系统不会给他默认值为null。 并且编译器会报错。这个时候给str赋值有两种方法,一种是直接赋值,一种是在构造器里面进行赋值。
-
final修饰,局部变量的时候,对于基本类型而言,不可改变,引用地址和数据都是不可可变。在局部变量里,对于引用类型而言,引用地址不可改变,但其内容可以改变。
package com.cnblogs;
public class MyTest {
String name;
public MyTest(String string) {
name = string;
}
public static void main(String args[]) {
final int a = 15;
System.out.println(a);
final MyTest stu = new MyTest("akl");
System.out.println(stu.name);
stu.name = "qi";
System.out.println(stu.name);
}
}
出处:
https://www.cnblogs.com/fangweicheng666/p/14973988.html