zoukankan      html  css  js  c++  java
  • 11、final详解

    1、final修饰成员变量

      即该成员被修饰为常量,意味着不可修改。

      对于值类型表示值不可变;对于引用类型表示地址不可变

         其初始化可以在三个地方

      ①:定义时直接赋值

      ②:构造函数

      ③:代码块{}或者静态代码块static{}

      

    import java.util.Arrays;
    public class Test {
        public static void main(String[] args) {
            FinalDemo f=new FinalDemo();
        }
    }
    class FinalDemo{
        //定义时复制
        final int[] arr={1,2,3,4,5};
        final int a;
        //在代码块中初始化a
        {
            a=1;
        }
        final static double PI;
        //在静态代码块中初始化PI
        static{
            PI=3.141592653;
        }
        final int b;
        public FinalDemo(){
            //在构造函数中初始化b
            b=2;
            //因为数组是引用类型,这里arr[2]=10并没有改变引用类型地址,只是改变地址所对应的值
            arr[2]=10;
            System.out.println(Arrays.toString(arr));
            System.out.println(a);
            System.out.println(b);
            System.out.println(PI);
        }
    }
    
    结果为:
    [1, 2, 10, 4, 5]
    1
    2
    3.141592653

    2、final修饰局部变量

      ①:直接赋值

      ②:先声明在赋值

      【注意】:在使用前当且仅当只能赋值1一次

      

    public class Test {
        public static void main(String[] args) {
            FinalDemo f=new FinalDemo();
        }
    }
    class FinalDemo{
        public FinalDemo(){
            final int a;
            final int b=2;
            a=1;
            System.out.println(a);
            System.out.println(b);
        }
    }

    3、final修饰方法

       final修饰方法表示该方法不可被重写

    4、final修饰类

      final修饰类表示该类不可被继承

  • 相关阅读:
    Web.xml配置详解
    ANNOTATION 注解
    Gradle的使用
    Version Control
    Building Tool(Maven/Gradle)
    HTTP协议
    函数式编程
    injection
    Container
    Building Tool(Maven/Gradle)
  • 原文地址:https://www.cnblogs.com/caoyc/p/4366340.html
Copyright © 2011-2022 走看看