星空网 > 软件开发 > Java

Java中的final修饰符

      1.什么时候可以选择final修饰符

  如果想让一个类不被其他类继承,不允许在有子类,这时候就要考虑用到final来修饰。

      2.用final修饰的类

   首先大家要明白,用final修饰的类是不能被继承的,下面来看一个错误案例。

eg:

final class Penguin{}class SubPenguin extends Penguin{}

此时这段代码的class SubPenguin extends Penguin这行代码会报错:

The type SubPenguin cannot subclass the final class :翻译:该类型SubPenguin不能继承的最后类

即.Penguin类不能被继承。

   3.用final修饰的方法

  eg:

 class Penguin{  public final void print(){}} class Subpenguin extends Penguin{  public void print(){}//错误}

此时这段代码public void print(){}会报错,提示错误信息:

cannot override the final method from Penguin:翻译:无法覆盖企鹅的最后方法

即.print方法不能被子类重写。

   4.用final修饰的变量

   用final修饰的变量包括成员变量和局部变量,他们将变成常量,只能赋值一次。

 public class Dog{ final String name="小黄";//用final来修饰狗狗的姓名 public void setname(String name){  this.name=name;  //错误,name不能在被赋值。}}

   5.使用final修饰符的注意点

final可以用来修饰类,方法和属性,不能修饰构造方法。

  6.用final修饰的引用型变量,变量所指对象的属性值是否能改变?

首先来看一个简单的例子

//狗狗类public class Dog{ String name;//狗狗的姓名 //带参构造,给狗狗的名字赋值 public Dog(String name){  this.name=name;} }//测试类 class Test{  public static void main(String[] args) {  final Dog dog=new Dog("小黄");//实例化一个狗对象,用final修饰  dog.name="大黄";  dog=new Dog("小八");  }}

  这段代码中dog对象被修饰为final成常量,其值不可变,但要注意的是dog.name="大黄";这行代码并没有错,那么dog=new Dog("小八")是错的,也就是说,使用final修饰的引用型变量,变量不可以在指向另外的对象,但是所指变量的内容是可以改变的。

结论:使用final修饰的引用型变量时,变量的值时固定不变的,而变量所指对象的属性值是可变的。

 




原标题:Java中的final修饰符

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

选取工具:https://www.goluckyvip.com/tag/5252.html
外国名牌项链:https://www.goluckyvip.com/tag/52527.html
怎么办理境外账户:https://www.goluckyvip.com/tag/52529.html
设置技巧:https://www.goluckyvip.com/tag/5253.html
关键词选取:https://www.goluckyvip.com/tag/5254.html
德国包装法收费明细:https://www.goluckyvip.com/tag/52546.html
九月初新疆旅游服装搭配(新疆游玩必备衣服清单):https://www.vstour.cn/a/408257.html
黄果树瀑布景区景点 - 黄果树瀑布景区景点分布图:https://www.vstour.cn/a/408258.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流