ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

final关键字

2019-11-21 11:00:41  阅读:264  来源: 互联网

标签:常量 testDemo public final 关键字 void class


final在程序中描述为终结器的概念,在java中使用final定义类、方法、属性
1.使用final定义的类不能再拥有子类
观察final定义的类、

final class A{

}
class B extends A{

}

public class testDemo{
    public static void main(String args[]){
        
    }
}

编译报错

root@079a25844567:/opt/lixinghua/OOP# javac testDemo.java
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
testDemo.java:4: error: cannot inherit from final A // 不能继承 A类
class B extends A{
                ^
1 error

一般地,开发系统类的会使用到final,如果进行架构代码的开发,也会用到final,只是使用者很少会自已定义的final类
2.使用final定义的方法,不能被子类覆写
在一些时候由于某些父类具备某隐藏的特性,那么子类必须使用此方法操作的时候,就加上final。意思是子类不要去破坏这个方法的重要的作用

class A{
    public final void get(){
    }

}
class B extends A{
    public void get(){
    }
}

public class testDemo{
    public static void main(String args[]){
        
    }
}

编译报错

root@079a25844567:/opt/lixinghua/OOP# javac testDemo.java
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
testDemo.java:7: error: get() in B cannot override get() in A
    public void get(){
                ^
  overridden method is final
1 error

以上两个final对我们使用意义不大
3.使用final定义的变量就成为了常量,常量必须在定义时设置好内容,并且不能修改

class A{
    final double GOOD=100.1;
    public final void get(){
        GOOD=1.1;
    }

}
class B extends A{
}

public class testDemo{
    public static void main(String args[]){
        
    }
}

编译报错

root@079a25844567:/opt/lixinghua/OOP# javac testDemo.java
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
testDemo.java:4: error: cannot assign a value to final variable GOOD
        GOOD=1.1;
        ^
1 error

使用常量可以利用一些变量名称表示一些数值
为了让常量和变量有效地区分,所有的常量名称都要求使用大写字母的方式表示
特别需要介绍的是全局常量:public static final 声明的就是全局常量

public static final String STR="MLDN";

static 的数据保存在公共数据区,所以此处的常量就是一个公共的常量
总结
1.对于final定义的类或方法,一定不要继承或覆写
2.发现public static final 定义的是全局常量的每一个字母都要求大写

标签:常量,testDemo,public,final,关键字,void,class
来源: https://www.cnblogs.com/anyux/p/11904202.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有