java--final
【摘要】
java--final
一、final关键字
①、final可以修饰变量、方法、类。
②、final修饰类不可以被继承,但是可以继承其他类
③、final修饰的方法不可以被覆盖,但可以覆盖父类方法
④、final修饰...
java--final
一、final关键字
①、final可以修饰变量、方法、类。
②、final修饰类不可以被继承,但是可以继承其他类
③、final修饰的方法不可以被覆盖,但可以覆盖父类方法
④、final修饰的变量称为常量,这些变量只能赋值一次。(final修饰的引用类型变量,表示变量的引用地址不能变,引用的值可以改变。)
⑤、内部类在局部时,只可以访问被final修饰的局部变量。
⑥、常量名称所有的字母大写,若有多个单词组成,单词间使用下划线连接。
二、final使用例子
①、final修饰的类不能被继承
-
final class FinalCLass
-
{
-
}
-
-
-
class Sub extends Super
-
{
-
//Sub不能继承被final修饰的FinalClass类
//class Sub extends FinalCLass {} //FinalDemo.java:5: 错误: 无法从最终FinalCLass进行继承
}
②、final修饰的方法不能被覆盖
-
-
class Super
-
{
-
-
//修饰符没有先后关系
-
final public void show()
-
{
-
-
}
-
}
-
-
class Sub extends Super
-
{
-
//FinalDemo.java:20: 错误: Sub中的show()无法覆盖Super中的show()
-
/**public void show()
-
{
-
-
}
-
*/
-
}
③、final修饰的常量
-
class FinalDemo
-
{
-
//全局常量
-
public static final int MAX_VALUE = Integer.MAX_VALUE;
-
public static void main(String[] args)
-
{
-
/*
-
final修饰的变量表示常量:
-
对常量有一个规范小规定:常量名得全部大写
-
若该常量名由多个单词组成, 单词字符全部大写,而且单词于单词之间使用下划线分割;
-
-
public static final int MAX_VALUE
-
-
-
-
*/
-
-
final double PI = 3.14;
-
System.out.println(PI);
-
//pi = 0.618;//FinalDemo.java:38: 错误: 无法为最终变量pi分配值
-
-
/*
-
final修饰的变量不能赋值?
-
最多只能赋值一次,一旦有值之后就不能被修改了;
-
-
-
当final修饰一个引用类型变量的时候,
-
那到底是引用不能变(引用地址不能变),还是引用对象的值不能变呢?
-
-
答: 是引用的地址不能变,对象里的内容是可以变的;
-
*/
-
-
//说明地址不能变
-
final String s = new String();
-
//s = new String();//FinalDemo.java:59: 错误: 无法为最终变量s分配值
-
-
//地址不变,但是对象内容可以改变
-
-
final StringBuilder sb = new StringBuilder("AAA");//字符串
-
System.out.println(sb);
-
-
sb.append("BBB");//追加
-
System.out.println(sb);
-
-
}
-
}
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/79466166
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)