java 修饰词 private final 简单的理解

来源:互联网 发布:ecowater 净水器 知乎 编辑:程序博客网 时间:2024/06/05 05:04

final  :

                本意是指 无法改变的!    不想被改变无非出于两种理由。设计和效率!以下针对用到final 的 三种情况  数据,方法 ,类

                1 数据 final 修饰基本的数据类型时 必须初始化 否则编译报错。代码 如下  包括包装类。

          final int a=0;
          final Integer ad;//编译报错

                

                    当 final 修饰的对象修饰的数据 是独享的引用的时候 而不是基本的数据类型。那么该对象的引用(String 除外)是不可以改变的。对象本身是可以改变的。

 void tets(final TestA a){
  a.setRemark("");
  a=new TestA();//编译 报错
 }
 void tetst(TestA a){
  a.setRemark("");
  a=new TestA();

 }


        使用 final 修饰方法的原因有两个。第一个原因把方法锁定,以防止集成修改他的含义。处于设计考虑 第二个就是效率问题。内嵌的方法有时候效率 偏高。final和private关键字

  类中 所有的private 方法都隐士的指定为 final的 由于无法取用private 方法所以也就无法覆盖它。但是 private 方法添加上隐士的 final字也是可以的 编译器并不报错

 private final void testAMethod(){
     System.out.println("menthod");
 }
 private void testAMethod2(){
  System.out.println("menthod 2");
 }

   


使用 final 修饰类的时候  意味着 该类不能被继承。 也就是该类的设计用不需要做 任何的变动 或者处于安全考虑的 考虑 你不希望他有子类。参考 String 类



    补充 java中除了 static 和final 外其他方法都是后期绑定的 


       


    

0 0