黑马JAVA P106 语法知识: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) {
    //schoolName = "传智"; //第二次赋值,报错了!
    Test t = new Test();
    // t.name = "麻子"; //第二次赋值,报错了!
    System.out.println(t.name);

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

        final double rate = 3.14;

        buy(0.8);
    }

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

}

/**
 * final修饰类  类不能被继承了
 */
//
//final class Animal{
//}
//class Cat extends Animal{
//
//}
class Animal{
    public void run(){
        System.out.println("动物可以跑~~");
    }
}

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


package com.itheima.d3_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]);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值