final关键字的使用

一:final修饰的变量

  1.被final修饰的变量必须显示指定初始值。指定初始值的方法有三种。

    1.定义该变量时直接指定。

    2.在非静态代码块中指定该变量的初始值

    3.在构造器中指定该变量的初始值

  2.被final修饰的类变量同样时必须显示指定初始值。指定的方法有两种。

    1.定义该变量时直接指定。

    2.在静态代码块中指定该变量的初始值

注意:本质上final修饰的实例变量初始化是在构造器中进行的,以上三种方法的本质是一样的。而final修饰的类变量初始化本质上是在静态代码块中进行的。

 1        class Price {
 2         final static Price instance = new Price(2.8);
 3         final static double initPrice = 20;
 4         double currentPrice;
 5         public Price(double discount){
 6             currentPrice = initPrice - discount;
 7         }
 8     }
 9     public class PriceTest{
10         public static void main(String[] args) {
11             System.out.print(Price.instance.currentPrice);
12             Price p = new Price(2.8);
13             System.out.print(p.currentPrice);
14         }
15     }
16 此时输出的是17.2,17.2
View Code
    class Price {
        final static Price instance = new Price(2.8);
        static double initPrice = 20;
        double currentPrice;
        public Price(double discount){
            currentPrice = initPrice - discount;
        }
    }
    public class PriceTest{
        public static void main(String[] args) {
            System.out.print(Price.instance.currentPrice);
            Price p = new Price(2.8);
            System.out.print(p.currentPrice);
        }
    }

此时输出的是-2.8,17.2
View Code

猜你喜欢

转载自www.cnblogs.com/zhlblogs/p/9084473.html