`
zjcheng
  • 浏览: 91921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

core java学习笔记(一):有关final修饰符

阅读更多
重新开始看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























分享到:
评论

相关推荐

    CoreJava学习笔记

    ### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...

    CoreJava老师笔记汇总

    6. **修饰符**:Java中有访问修饰符(public, private, protected, default)、static、final、abstract等,它们用来控制类、方法、变量的可见性和行为。 7. **常用类**:这部分可能包含Java标准库中的IO流、日期...

    Java笔记Core java

    类可以通过访问修饰符(public、private、protected、默认)来控制其可见性,也可以通过final关键字使其不可被继承。Java支持单继承,但通过接口可以实现多重继承的效果。构造器是类的特殊方法,用于初始化新创建的...

    【精品】CoreJava笔记

    《【精品】CoreJava笔记》是一份详尽的Java编程学习资料,主要涵盖了CoreJava的基础知识和核心概念。CoreJava是Java开发的核心部分,对于任何Java程序员来说,掌握这一领域的内容至关重要。以下是对这份笔记中可能...

    CoreJava笔记

    - **非访问控制修饰符**:如`static`、`final`等,用于修改类、方法或变量的行为。 #### 七、常用类 - **String**:字符串处理。 - **Date**:日期处理。 - **Math**:数学运算。 - **Arrays**:数组操作。 #### ...

    corejava学习笔记.doc

    在Core Java的学习笔记中,涵盖了Java语言的基础知识到高级特性的广泛内容。以下是这些章节的主要知识点: 1. **语言基础**:这部分讲解了Java的基本语法,包括标识符、命名规范、八种基本数据类型(如int、char、...

    Java Object-Oriented Programming.ppt

    同时,学习访问修饰符(public, private, protected)以及final关键字的使用。 5. **多态性和抽象类**:第五周将讨论多态性,这是面向对象的一个关键特性,允许不同的对象对同一消息作出不同的响应。此外,还将介绍...

    corejavaNoteBook

    《CoreJavaNoteBook》是为Java初学者提供的一份详细的学习笔记,涵盖了Java语言的核心概念和技术,旨在通过理论与实践相结合的方式,帮助读者快速掌握Java编程。以下是对笔记内容的详细解析: 首先,前言部分介绍了...

    core_java_I_notes

    11. **访问修饰符**:`public`, `private`, `protected`和默认修饰符决定了类、方法和变量的可见性。 12. **异常处理**:Java使用异常处理来处理运行时错误。`try-catch-finally`结构用于捕获并处理异常,`throw`和...

Global site tag (gtag.js) - Google Analytics