重新开始看Java基础知识,发现好多的地方其实不是很清楚,特在此做个笔记。
final在用于修饰类中的域时,可以分成三种情况。
1、修饰基本类型的数据。
2、修饰本来就是final类型的类类型。
3、修饰非final类的对象变量。
针对第一种情况,比较简单,就是表明其在被初始化后不能被修改。可以在定义的时候初始化,如
public class CoreJavaTest3 {
private final double pi = 3.14;
public double getPi() {
return pi;
}
}
也可以在构造函数中初始化,但是只能在其中一个地方初始化。如下就不能通过编译
public class CoreJavaTest3 {
private final double pi = 3.14;
public CoreJavaTest3() {
this.pi = 3.1415926;//编译不能通过
}
public double getPi() {
return pi;
}
}
针对第二种情况,和第一种情况一样,只是修饰的是final类型的类类型变量。
public class CoreJavaTest3 {
private final String test = "test string";
public CoreJavaTest3() {
this.test = "update string";//编译不能通过
}
public String getPi() {
return test;
}
}
需要注意的是第三种情况,Test是非final类,对例子中的testObj仅意味着存储在testObj变量中的对象引用在对象构造之后不能被改变。并不意味着testObj对象是一个常量,我们仍然可以修改testObj对象的内容。
public class CoreJavaTest3 {
private final Test testObj = new Test("first string");
public CoreJavaTest3() {
//this.test = new Test("second string");//编译不能通过
System.out.println("初始化:"+testObj.getStr());
}
public static void main(String[] argc){
CoreJavaTest3 coretest = new CoreJavaTest3();
coretest.updateTest();
}
public void updateTest(){
this.testObj.setStr("update string");//可以修改
System.out.println("修改后:"+testObj.getStr());
}
public Test getTestObj() {
return testObj;
}
}
class Test{
private String str;
public Test(String str) {
super();
this.str = str;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}
运行结果:
初始化:first string
修改后:update string
分享到:
相关推荐
达内core_java学习笔记,初学core_java者推荐文档
java学习笔记 简介: java 学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我还会折返回来进行修改或者添加一些注释。 当然如果你...
corejava学习笔记.doc
《Core Java》学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我还会折返回来进行修改或者添加一些注释。 当然如果你有什么不理解...
Core Java 学习笔记及心得 pdf格式可打开。涵盖了java的基础入门知识,非常适合自学的及想深入学习理解的同学
CoreJava DAY07修饰符 26 CoreJava DAY08 常用类 29 CoreJava DAY09 高级语言特征 30 CoreJava DAY10 主方法,静态导入,包装类,枚举 32 CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 ...
java\CoreJava笔记\CoreJava_day12.doc
CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)
适合初学者,复习使用
达内COREJAVA学习笔记
java\CoreJava笔记\CoreJava_day06.doc
java 基础部分的知识 自己个人整理所得,希望对大家有所帮助
java\CoreJava笔记\CoreJava_day11.doc
CoreJava DAY07修饰符 50 CoreJava DAY08 常用类 56 CoreJava DAY09 高级语言特征 58 CoreJava DAY10 主方法,静态导入,包装类,枚举 62 CoreJava DAY11 内部类 70 CoreJava DAY12 集合 List 78 CoreJava DAY13 ...
本文档主要讲述的是CoreJava学习笔记;Java语法是C++语法的一个“纯净”版本,Java把打开套接字连接等繁琐的网络任务变得非常容易,Java可随意增加新的方法以及实例变量,而客户端却不需做任何的更改;希望本文档会...
本文档参考了《CoreJava笔记》、《韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)》、《Java学习笔记(必看经典)》等笔记(学习笔记一定是一大抄,为了学好这门课,多参考一些笔记是应该的。这些笔记下载...
《Core Java》学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我会折返回来进行修改或者添加一些注释。 当然如果你有什么不明白的...
java学习笔记(corejava)部分.pdf
java学习笔记(corejava)部分.rar