美文网首页
Java之final

Java之final

作者: 定一 | 来源:发表于2020-06-14 20:46 被阅读0次

    final可以修饰变量、方法、类。

    final修饰变量

    1. final修饰成员属性(变量)必须初始化;
    2. 修饰局部变量使用前必须初始化。
    class Circle{
        private final int a=1;
        private int b;
        private void f() {
            final int a;
            System.out.println(a);//这样会报错
        }
    }
    
    • 注意
    1. final修饰的变量不能改变,本质来说:不可变的是变量的引用,而不是变量的内容。
    2. final修饰【引用类型】,其指向的对象的数据是可以修改的。但是它的地址不能变,即它不能再指向其它对象。

    代码:

    public class Test1 {
        private int a = 33;
        public static void main(String[] args) {
             final Test1 test1 = new Test1();
             test1 = new Test1(); //报错,指针不可修改
            test1.a = 44;//对象数据可以修改
        }
    }
    

    final修饰方法

    1. 方法不能被子类重写
    class Base{
        public final void f(){
        }
    }
    
    class Child extends Base{
        public void f(){ //不能重写父类final修饰得方法,编译不通过
        }
    }
    

    final修饰类

    1. final修饰的是最终类,不能再被继承了。
    这样是错误的
    final class Base{
        public final void f(){
        }
    }
    class Child extends Base{ //不能被继承,父类是final修饰,编译不通过
    }
    

    相关文章

      网友评论

          本文标题:Java之final

          本文链接:https://www.haomeiwen.com/subject/ekufxktx.html