Java中的final关键字

1 篇文章 0 订阅

Java中的final关键字

  • final关键字可以修饰属性
    final修饰变量时,变量必须被初始化,并且不能被修改。初始化可以是在定义final变量时直接初始化或者在构造函数中初始化(则必须在所有当前类的构造器中赋值)。
public class A {
    private final String name="123"; //使用final一般用于定义常量,可以在声明的同时进行赋值,例如PI=3.1415。一般常量的命名规则为全大写,下划线分词USE_NAME
    public void pp() {
// name="abc"; final表示name一旦赋值则不能修改
    }
}
public class A {
    private final String name;
    public A() { //定义final属性如果在构造器中赋值,则必须在所有当前类的构造器中赋值
        name="123456";
}
    public A(int k) {
       name="rrrr";
    }
    public void pp() {
// name="abc"; final表示name一旦赋值则不能修改
    }
}
  • final可以修饰局部变量
    final临时变量,可以声明的同时赋值或者在第一次使用之前进行赋值
public class A {
     public void pp() {
// final int kk=123; 声明的同时直接进行赋值操作
    final int kk; //先声明后赋值
    System.out.println("其它操作");
    kk=222;
// kk++;final变量一旦赋值则不允许进行修改操作
    System.out.println(kk);
   }
}
  • final修饰方法
    final修饰方法则该方法不能被子类覆盖或重写
public class A {
    public final void pp() {
        System.out.println("this is A class");
   }
}
public class B extends A {
    public void pp() { //因为A类中的方法pp有final修饰,则该方法不允许覆盖定义,但是允许重载
        System.out.println("this is B class");
    }
    public void pp(int k) {}
}
  • 修饰类
    final修饰一个类,则该类不能被继承
    (通过private构造器也达到了类似的不允许继承的效果,但是要求类中的所有构造器都是私有)
public final class A {
}
//因为A类是final类,所以不能被继承
public class B extends A {//报错
}
  • 表示字串的3种类型String、StringBuer、StringBuilder都是nal类型的类,所以都不允许继承
public class A extends String{} //语法错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值