JAVA学习笔记(十九)-final关键词

JAVA学习笔记(十九)-final关键词

package com.itheima.d3_final;

/**
 目标:明白final一些基本语法知识
 */
public class Test {
    // 属于类,只加载一次,可以共享 (常量)
    public static final String schoolName = "黑马";
    public static final String schoolName2;
    static{
        schoolName2 = "传智";
        // schoolName2 = "传智"; // 第二次赋值,报错了!
    }

    // 属于对象的! (final基本上不会用来修饰实例成员变量,没有意义!)
    private final String name = "王麻子";

    public static void main(String[] args) {
        // final修饰变量,变量有且仅能被赋值一次。
        /* 变量有几种:
           局部变量。
           成员变量。
                -- 1、静态成员变量。
                -- 2、实例成员变量。
       */
        final int age;
        age = 12;
        // age = 20; // 第二次赋值,报错了!
        System.out.println(age);

        final double rate = 3.14;

        buy(0.8);

        // schoolName = "传智"; // 第二次赋值,报错了!
        Test t = new Test();
        // t.name = "麻子"; // 第二次赋值,报错了!
        System.out.println(t.name);
    }

    public static void buy(final double z){
        // z = 0.1; // 第二次赋值,报错了!
    }
}

/**
 final修饰类 类不能被继承了
 */
//final class Animal{
//}
//class Cat extends Animal{
//}

/**
 final修饰方法,方法不能被重写
 */
class Animal{
    public final void run(){
        System.out.println("动物可以跑~~");
    }
}

class Tiger extends Animal{
//    @Override
//    public void run() {
//        System.out.println("老虎跑的贼快~~~");
//    }
}

JAVA学习笔记(十九)-final关键词



public class Test2 {
    public static void main(String[] args) {
        // final修饰变量的注意事项:
        // 1、final修饰基本类型变量,其数据不能再改变
        final double rate = 3.14;
        // rate = 3.15; // 第二次赋值,报错

        // 2、final修饰引用数据类型的变量,变量中存储的地址不能被改变,但是地址指向的对象内容可以改变。
        final int[] arr = {10, 20, 30};
        System.out.println(arr);
        // arr = null; // 属于第二次赋值,arr中的地址不能被改变
        arr[1] = 200;
        System.out.println(arr);
        System.out.println(arr[1]);
    }
}

JAVA学习笔记(十九)-final关键词

上一篇:苹果macfcpx视频剪辑软件:Final Cut Pro X


下一篇:Android控件开发之Gallery3D酷炫效果(带源码),稳进大厂