Final
1. final关键字
在Java中, 可以使用final关键字修饰类、方法以及成员变量。
(1).final标记的类不能被继承;
(2).final标记的方法不能被子类复写;
(3).final标记的变量即成为常量,只能被赋值一次,对于基本类型,不可变指的是值对于引用类型,不可变指的是引用地址
注意: 如果使用final来声明常量,请遵守以下常规: final标记的变量名,所有单词字母都需大写.
Final Class
Afinalclasscannot
be subclassed.
package me.testfinal;
final class Sub{
}
class SuSu extends Sub{}//由于Sub是Final定义,所以不能继承
//cannot inherit from final Sub
Finalmethods
Afinalmethodcannot
beoverriddenor hidden by subclasses.
package me.testfinal;
class Test{
final int I=8;
final void say(){
System.out.println("Final定义 允许修改");
}
}
class Sub extends Test{
void say(){}
}
public class TestFinal{
public static void main(String[] args){
Sub your=new Sub();
your.say();//编译错误
/*输出:ay() in Sub cannot override say() in Test
*///Final定义的不能更改了
}
}
Finalvariables
Afinalvariablecan only be initialized once, either via an initializer or an assignment statement.
1.Final 常量 的定义
//Final 1.Final的变量值不能改变 2.Final 的方法不能重写 3.Final的方法不能被继承
package me.testfinal;
class Test{
final int I=8;
}
public class TestFinal{
public static void main(String[] args){
Test my=new Test();
//my.I=100;
/*输出:
cannot assign a value to final variable i
*///Final定义,不能改变这个值~
}
}
2.Final & Static Final 常量的定义
//final与static final
package me.testfinal;
class Test{
//要用大写书写常量
private final String NAME="Gino";
private final int A=100;
public final int B=80;
public static final int C=60;
//空白final
public final int D;//必须在构造器时候初始化
Test(){
D=99;//要不在定义时候初始化,要不在构造器初始化
}
// public static final int E;//编译错误
/*
variable E might not have been initialized
*///静态的必须在定义时候就初始化
public void set(){
D=66;
/*cannot assign a value to final variable D
D=66;*///只能在构造器或者定义的时候初始化他
}
}
public class TestFinal{
public static void main(String[] args){
Test coco=new Test();
}
}
3.Final 修饰 形参
//Final修饰参数
package me.testfinal;
class Test{
public void say(final int i){
i=9;//编译错误
/*输出:
TestFinal.java:8: error: final parameter i may not be assigned
i=9;
^
1 error
*///一旦形参接受了传过来的值,就不能在修改这个值了。这个值只读;
System.out.println(i);
}
}
public class TestFinal{
public static void main(String[] args){
Test coco=new Test();
coco.say(5);//传5过去,但是在say方法里面i的值就只能是5了
coco.say(9);//可以传9过去,同理现在say方法里面,i固定是9了
}
}
作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名
2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).
分享到:
相关推荐
内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联函数,this指针,静态成员...
20210808-银河证券-交通运输行业:菜鸟网络业绩表现持续向好,京东航空获批筹建.rar
20210808-银河证券-交通运输行业:菜鸟网络业绩表现持续向好,京东航空获批筹建.pdf
java笔记-从菜鸟到j2se j2ee高手之路
股市菜鸟必读----“笑傲股市”学习笔记.pdf
JAVA入门级笔记,满满当当适合刚学习用JAVA编程的程序员,不死记硬背靠理解走遍天下
本人刚接触C#,练练手做了个小程序,美化效果比较差,对刚学OO思想想俺一样的菜鸟或许有那么点帮助,希望大家多多指教
菜鸟入侵--利用资源搜索动画教程,内附有详细的使用说明 菜鸟入侵之利用资源篇 菜鸟在入侵的时候,如果能充分利用现有的资源,那将对自己的入侵起很大的
java菜鸟学习第一步-java基础语法,学习一门语言先从语法开始学起,学好基础才能深入的学习编程
Python基础语法-菜鸟教程-函数⽤法:input()和raw_input() 1.input()和raw_input()⽤法 (1).input() 1)⽤法解释 def input(*args, **kwargs): # real signature unknown """ Read a string from standard input....
java必备-菜鸟的最爱-正则表达式.docx
1 09:15:01 ------>Power:99% ----->Memory:18.24% ---->CPULoad:2.54 2 09:20:01 92% 17.86% 1.06 3 09:25:02 95% 18.58% 1.40 4 09:30:01 80% 19.04% 0.41 5 09:35:01 79% 19.18% 0.73 6 09:40:01 69% 19.13% 0.14...
STM32菜鸟学习手册-罗嗦版 。
菜鸟的SAP自学学习笔记;对SAP初学者很有帮助喔!为了解决问题却也带来了相当大的收益,接触了那些以前不会考虑的问题领域,结识了一些之前根本想象不到的人,这些都是那么重珍贵。
java 笔试面试题 Java 面试笔记 这本书其实是我的一本笔记 (还在整理中). 我是也是刚找到工作. 这本笔记主要记录了我之前面试遇到的问题以及我在网上整理的一些资料 主要是面向 junior 级别的 就是我们这些小菜鸟啦 ...
DAMA学习笔记-第01-17章细化第5章数据建模较多内容
Java基础知识笔记详细版-菜鸟翻阅必备,可以作为坐地铁等公交的读物!
python-note 菜鸟学习笔记
这本笔记主要记录了我之前面试遇到的问题以及我在网上整理的一些资料 主要是面向 junior 级别的 就是我们这些小菜鸟啦 ~ ---------------------------------------------------- 本 PDF 基于开源文档,目录书签齐全...