day12面向对象进阶12.2

final的作用

  • final关键字是最终的意思,可以修饰(方法,变量,类)
  • 修饰方法:表明该方法是最终方法,不能被重写。
  • 修饰变量:表示该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次)。
  • 修饰类:表明该类是最终类,不能被继承。
    package d3_final;
        //目标:明白final的一些基本语法知识
    
    import d1_package.Test;
    
    public class test {
        //属于类,只加载一次,可以共享
        public static final String schoolName="牛批";
        public static final String schoolName2;
        static {
            schoolName2="777";
    //        schoolName2="888";//第二次赋值,报错了
        }
    
        //属于对象的!(final基本上不会用来修饰实例成员变量,没有意义)
        private final String name="王麻子";
    
    
        public static void main(String[] args) {
    //        schoolName="666";//第二次赋值,报错了
    
    
        //final修饰变量,变量有且仅能被赋值一次
    
        // 变量有几种
            //局部变量
            //成员变量
                //1.静态成员变量。
               //2.实例成员变量。
           final int age;
            age=12;
    //        age=20;//第二次赋值,报错了
            System.out.println(age);
    
            final double rete=3.14;
    
            buy(0.8);
        }
        public static void buy(final double z){
    //        z=0.1;//第二次赋值,报错了
        }
    }
    
    //final修饰类 类不能被继承了
    //final class Aninal{
    //}
    //class Cat extends Aninal{
    //}
    
    //final修饰方法,方法不能被重写
    //class Aninal{
    //    public final void run(){
    //        System.out.println("动物可以跑!");
    //    }
    //}
    //
    //class Tiger extends Aninal{
    //    @Override
    //    public void run() {
    //        super.run("老虎跑的贼快");
    //    }
    //}

    final修饰变量的注意:

  • final修饰的变量是基本类型:那么变量存储的数据值不能发生改变。

  • final修饰的变量是引用类型:那么变量存储的地址值不能发生改变,但是地址指向的对象内容是可以发生变化的。

package d3_final;

public class Test2 {
    public static void main(String[] args) {
        //final修饰变量的注意事项
        //1.final修饰基本类型变量,其数据不能再改变
        final int rate=21;
//        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]);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值