关于java中的关键字final

/*
*   关键字final 表示最终的  可以修饰结构:方法,类,变量
*   被修饰的类不能继承,意味着功能不需要扩展了:String StringBuilding等,因为太多了
*   继承后如果父类原先方法有final 修饰则不能进行重写方法
*   也可以修饰局部变量 最终的,此时的变量其实变成了常量
*   final MIX_SCORE
*   有哪些位置可以给成员变量的赋值
*   >显式赋值
*   >代码块赋值
*   >构造器赋值
* 以上三个基于类加载就有了
*           static(不能修饰局部变量) 和 final搭配:修饰成员变量时(一份不可变,即全局常量)
*       如Math.PI
* */

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 修饰的引用数据类型

}
//----------------------exer--------------------新的主函数测试类
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;

}

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值