public class fianlTest {
public static void main(String[] args) {
E e = new E();
System.out.println(e.MIN_SCORE);//可以直接调用,但不能修改
//e.MIN_SCORE=1;//错误
System.out.println(e.MAX_SCORE);
E e1 = new E(10);
System.out.println(e1.LEF);
E e2 = new E();
//e2.setRight(2);错误见下
//System.out.println(e2.Right);//无法获取结果
}
}
class E {
final int MIN_SCORE=0;//或者写成
//int MIN_SCORE;//写成这样默认赋值为0
//可final int MIN_SCORE;报错显示未初始化
final int MAX_SCORE;//MAX_SCORE=100;显示赋值
//采用代码块赋值
{
// MIN_SCORE=1;//报错,已经final赋过值了
MAX_SCORE=100;
}final int LEF;
//构造器赋值
public E(){
LEF=2;
}
public E(int lef){
LEF=lef;
}
//final int Right;
public void setRight(int right){
//Right=right;//报错,因为有个规律,就是声明final 变量后,必须要类(代码块,显示赋值,构造器均是无需对象在类加载而加载)中加载出来值,
//而用方法去赋值需要先new 对象,才能调用方法出了范围(没提前告诉我)
}
}
class C{
public final void eat(){//加了fianl
}
}
class D extends C{
public void eat(){//错误,加了final修饰不能再改写
}
}
final class A{//final
}
class B extends A{//错误,加了final修饰不能再继承
}
class substring extends String{//错误,String类本身就是final 修饰的引用数据类型
}
public class Test{
public static void main(String[] args) {
other o =new other();
new Test().add(o);//生成o
}
public void add(final other o){//final修饰的形参不能再重写new
// o=new other();//此处报错,已经生成o了,由于是final类型只能指向一个地址不变,又new一个//空间当然错误
o.i++;
}
}
class other{
public int i;
}
/ public void add(final other o){//final修饰的形参不能再重写new。//----------------------exer--------------------新的主函数测试类。// public void eat(){//错误,加了final修饰不能再改写。//class B extends A{//错误,加了final修饰不能再继承。//报错,已经final赋过值了。//写成这样默认赋值为0。