java final关键字

 

1.final 可以用来修饰的结构:   类,方法,变量

2.final  用来休息一个类,该类不能被其他的类所继承

3.用来修饰方法,表示方法不能被重写

4.   用来修饰变量,此时的变量成为一个常量,

         >4.1final  修饰属性:  不能别修改

       >4.2   默认初始化属性不能修饰

      > 4.3  实例化对象以后,   对象.属性的方式,或者对象.方法调用final属性【不能修饰】

5. final         修饰 局部变量

 

 

 

 

【修饰一个类不能被其他类所继承】

 

 

 

【修饰方法,不能被重写】

 

 

 【修饰一个变量不能被修饰,此时为常量】           不能修改常量的值

 

 

 

 

【final  修饰属性】:

     默认初始化【不能被修饰】

 

 

 显示 初始化可以

 

 

代码块中可以

 

 

 

构造器中

 

 

 

【注意】  如果在构造器中赋值,有多个构造器,那么多个构造器都得赋上值 

 

 

 【错误】因为如果有些构造器没有赋上值,实例化对象,比如现在通过下面的 有参 构造器实例化对象时, final 属性 RIGHT就赋不上值,就会标红----->     即实例化对象时候,属性没赋值

 

 

 

上图的上一张图中的两个构造器都可以分别实例化对象,例如:

 

 

 错误的方法也可以改进: 

通过this(), 比如:    调用这个无参构造器时,去调用另外一个有参构造器.

   

 

public   FinalTest(){
        RIGHT  = 2; //  构造器中初始化,然后修饰
    }

    public  FinalTest( int  n){
        this();
      //  RIGHT  = n; //   final 属性 RIGHT就赋不上值
    }

 

 这里new了一下,实例化了一个对象,赋对象的引用f1  ,此时java帮我调用了那个有参构造器,并且传入参数3,但是构造器中,并没有操作,只有一个 this();这个this表示当前对象,this  即当前构造器,在当前构造器器中调用无参数构造器

      

 

 


FinalTest f1   =  new FinalTest(3);
System.out.println(f1.RIGHT);      //  值为2

 

 

对象.方法,调用        final中的属性【不可取】

//  准确点   应该是对象产生之后可以调用方法,但是该值已经加载为final了,之后调用方法已经不能改变该值,所以调用方法最后没能成功给down赋上值

 

  final   int  Down;

 

public   void  SetdDown(int  down){
           this.Down = down;
       }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值