final关键字

final(最终的,不可变的)

修饰变量
final变量一旦初始化,则不允许修改

在构建对象时,final属性必须进行赋值,可采用的是直接赋值、非静态代码块赋值、构造器赋值三种方法,重点是一旦赋值不允许修改

例:

class A1 {
        final String name = "kou"; // 指定final属性必须给出一个初始化,否则报错
        final String name1;
        final Integer age; // 初始化可以直接赋值,也可以在代码块中进行赋值或者在构造器中进
行赋值
        final Date birth;
        { // 代码块,不管执行的是哪个构造器,这个代码块一定执行
        age = 100;
        }
        public A1() {
        birth = new Date();
        name1="birth";
        }
        public A1(String name1) {
        birth = new Date();
        // age=99;语法报错的原因是非静态代码块中已经对age属性进行赋值,在构造器中赋值属于2
次赋值,所以报错
        this.name1=name1; //final属性也可以通过构造器的参数进行赋值,不是必须为字面

        }
        public void pp() {
        // name="zhangsan"; 报错的原因是final属性一旦赋值则不允许修改
        }
}

局部变量要求声明的同时必须赋初始值,也可以先声明后赋值,但是在使用之前必须赋值,而且一旦赋值则不能修改

修饰方法:不允许继承修改

修改类定义:不允许继承

重要提示:
由于String、StringBuffer、StringBuilder之类的类型定义是final类型的,所以不允许通过继承的方式重新定义

总结
final属性上可以声明的同时进行赋值,也可以在构造器或者非静态代码块中进行赋值。一旦赋值不
允许修改
final局部变量可以在声明的同时机型赋值,也可以在第一次使用之前进行赋值。一旦赋值不允许修

final针对复杂类型表示的是不允许修改引用,而不是不允许修改引用对象中的属性

final方法表示这个方法不允许在子类中覆盖定义。子类中只能继承父类中的final方法,但是不允许
子类中重新定义
final类表示这个类不允许继承

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值