#java中final关键字的用法
package basic.Filea;
import java.util.Scanner;
public class FinalTest {
//java中常量的定义
public final int REGION=12;
int b;
final int s=1; //final修饰的成员变量必须赋值
public static void main(String[] args) {
/**final表示最终的不可变的
* 修饰的类无法被继承
* 修饰的方法无法被覆盖
* 变量一旦赋值后就不可重新赋值*/
final int a=10;
//a=10; 再次赋值出错
final String k="a";
System.out.println(k);
final double d;
Scanner sa=new Scanner(System.in);
d=sa.nextDouble();//代码运行到此处需要手动输入一个double
//同c语言的scanf
System.out.println(d);
final FinalClass fc=new FinalClass(88);
// fc=new FinalClass(77);
// final修饰的引用,指向某个对象后不能再指向其他对象
System.out.println(fc.a);
//fc.a=12; 赋值后引用也不能重新赋值
}
}
package basic.Filea;
public class FinalClass {
//fianl修饰的实例变量,必须手动赋值
final int e=999;
//手动赋值,1,2任意一个都行
final float a;
public FinalClass() {
this.a=111;
}//1
public FinalClass(float a) {
this.a = a;
}//2
//final修饰方法,方法不能被覆盖(重写)
public final void test(){
System.out.println("不能覆盖");
}
}
此外final还可以直接用在类上,不可被继承extends
public final class Text {
int a=100;
}
但是new出对象后可以更改里面的实例变量
Text ss=new Text();
ss.a=89;
System.out.println(ss.a);
private是私密的,就是源代码使用了final