JAVA final 关键字

1)final 修饰常量 :可以将该常量代入任何可能用到它的表达式中,在编译器中执行运算,在该常量定义的时候应该进行赋值。

2)final 修饰引用:一旦引用指向了一个对象,就无法再指向另外一个对象(对象v1)

import java.util.Random;

class Value{
    int i;
    public Value(int i){
        this.i = i;
    }
}

public class finaldemo {

    private static final int s1 =new Random().nextInt(3) ;//类加载时加载,不随着创建新的对象改变值
    private static final Value v1 = new Value(1);
    public static void main(String[] args) {
        //v1 = new Value(2);The final field finaldemo.v1 cannot be assigned
        v1.i = 2;//虽然无法更改引用所指向的对象,但是,对象本身还是可以修改的
        finaldemo demo1 = new finaldemo();
        System.out.println(demo1.s1);

        finaldemo demo2 = new finaldemo();
        System.out.println(demo1.s1);

    }
}

3)JAVA 允许生成 空白final(申明为final 但是又未给定初值的域),无论什么情况编译器都确保空白final 在使用前被初始化。

4)final 参数,意味着无法再方法中更改参数所指向的对象

class person{

}

public class demo2 {

    void with(final person p){
        //p = new person();  illegal
    }
}

5)final 方法,把方法锁定,任何子类无法覆盖此方法

class Father{
    final void Money(){

    }
}
public class Son extends Father{

//  void Money(){ //Cannot override the final method from Father
//
//  }
}

6)final类 该类无法被继承

final class Father{
    final void Money(){

    }
}
public class Son extends Father{//The type Son cannot subclass the final class Father

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值