美文网首页
java之final关键字

java之final关键字

作者: 是归人不是过客 | 来源:发表于2020-09-01 16:10 被阅读0次

    总结:

    1、final修饰的类无法被继承

    2、final修饰的方法无法被覆盖

    3、final修饰的局部变量一旦被赋值,无法被改变

    4、final修饰的成员变量“显示的”初始化,在构造方法调用结束之前能赋值就ok

    5、final修饰的成员变量一般和static联用

    我们来一 一举栗子:

    final修饰的方法无法被覆盖

    class A{
        public final void m1() {}
    }
    class B extends A{
        public final void m1() {}
    } // 编译不同通过
    

    final修饰的局部变量一旦被赋值,无法被改变

    class A {
        public void m1() {
            final int i;
            i = 100;
    //      i = 200; 编译不通过
        }
    }
    

    final修饰的成员变量“显示的”初始化,在构造方法调用结束之前能赋值就ok

    class A{
    //  final int i; 编译不通过
        final int i = 1;
        final int k;
        A(){
            k = 2;
        }
    }
    

    final修饰的成员变量一般和static联用,因为放在方法区,不消耗内存

    class MyMath{
        // 常量.java规范中要求所欲的常量“大写”
        // 常量:值不可再改变的变量
        public static final double PI = 3.14;
    }
    

    再举栗子:

    public abstract class p{
        // 入口
        public static void main(String[] args) {
            final Customer c = new Customer("JACK",15);
            // c是final的,无法重新赋值
    //      c = new Customer("LUCY",20);
        }
        
    }
    class Customer{
        String name;
        int age;
        
        Customer(String name,int age){
            this.name = name;
            this.age = age;
        }
    }
    

    相关文章

      网友评论

          本文标题:java之final关键字

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