`
zjcheng
  • 浏览: 92448 次
  • 性别: 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几乎一切都...

    java学习笔记 自己的笔记都以注释的形式写在代码里面

    java学习笔记 简介: java 学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我还会折返回来进行修改或者添加一些注释。 当然如果你...

    Java学习笔记及心得

    #### 描述:Core Java 学习笔记及心得 pdf格式可打开。涵盖了java的基础入门知识,非常适合自学的及想深入学习理解的同学。 #### 标签:Java、基础入门、学习笔记 #### 知识点详细解析: ##### 一、JAVA基础知识...

    达内core_java学习笔记

    Java是世界上最流行的编程语言之一,...以上就是“达内Core Java学习笔记”中涉及的主要知识点。通过深入学习和实践,初学者可以逐步建立起坚实的Java编程基础,并为进一步学习Java的高级特性和框架打下坚实的基础。

    corejava学习笔记

    Java是一种广泛使用的面向对象的编程语言,其基础知识构成了"Core Java"的学习内容。在学习Java时,遵循"多花时间、多动手、多问题"的原则至关重要,因为理论理解与实践操作相结合能更好地掌握知识。 1. **Java语法...

    Core Java 学习笔记

    《Core Java》学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我还会折返回来进行修改或者添加一些注释。 当然如果你有什么不理解...

    corejava学习笔记.doc

    Java是一种由Sun Microsystems在1995年推出的高级编程语言,现由Oracle公司维护。...以上就是Core Java学习笔记的主要内容概述,涵盖了从基础语法到高级特性的广泛知识,为深入理解和应用Java打下了坚实的基础。

    达内java学习笔记全套

    【Java学习笔记全套】是针对Java编程语言的一套全面学习资料,涵盖了Unix操作系统基础、SQL数据库操作、核心Java编程、Hibernate持久化框架、以及Spring框架等多个关键知识点。这些笔记旨在帮助初学者系统地掌握Java...

    core java 学习笔记

    这篇学习笔记主要讨论了Java集合框架,包括Collection、List、Set和Map四大接口以及它们的相关方法。 首先,Collection是所有集合类的顶级接口,它定义了一些基本的操作,如添加元素(add)、获取元素数量(size)、...

    达内Java培训-CoreJava全程笔记(WORD唐亮版)

    CoreJava DAY07修饰符 26 CoreJava DAY08 常用类 29 CoreJava DAY09 高级语言特征 30 CoreJava DAY10 主方法,静态导入,包装类,枚举 32 CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 ...

    CoreJava学习笔记.doc

    《CoreJava学习笔记》 Java,作为一种广泛使用的高级编程语言,以其独特的特性和优势深受开发者喜爱。本学习笔记旨在深入浅出地介绍Java的核心概念,帮助初学者快速掌握这一强大的工具。 1. Java特点 Java语法...

    学习笔记 java\CoreJava笔记\CoreJava_day12

    在Java编程语言中,SortedSet接口是Set接口的一个子接口,它添加了对集合元素排序的能力。SortedSet接口要求其实现类必须维护元素的排序顺序,这种顺序可以是元素的自然顺序(即元素自身可比较),也可以是通过提供...

    学习笔记java\CoreJava笔记\CoreJava_day07

    在Java编程语言中,【CoreJava_day07】的学习笔记主要涵盖了几个核心概念:继承、super关键字、重写、多态以及类型转换。此外,还深入讲解了单例模式和final关键字的应用。 首先,让我们来看一下继承。继承是面向...

    达内COREJAVA学习笔记.doc

    ### 达内COREJAVA学习笔记知识点详述 #### 一、Java版本与平台概述 - **J2SE**: Java Standard Edition,即Java标准版,针对桌面应用开发。 - **JAVA SE**: 指的是Java SE 5.0,发布于2004年,增加了泛型、枚举等...

    达内CORE JAVA部分笔记,代码,练习

    "达内CORE JAVA部分笔记,代码,练习"是针对Java初学者的一个学习资源集合,它涵盖了Java的核心概念和技术。 1. **基础语法** - 变量与数据类型:Java提供了基本数据类型如int, double, boolean等,以及引用数据...

    达内 CoreJava老师笔记汇总

    CoreJava DAY07修饰符 50 CoreJava DAY08 常用类 56 CoreJava DAY09 高级语言特征 58 CoreJava DAY10 主方法,静态导入,包装类,枚举 62 CoreJava DAY11 内部类 70 CoreJava DAY12 集合 List 78 CoreJava DAY13 ...

    《Core Java》学习笔记 .zip

    简介 《Core Java》学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我会折返回来进行修改或者添加一些注释。 当然如果你有什么不明白...

    CoreJava新手笔记(全)

    CoreJava新手笔记主要涵盖的是Java的核心内容,特别是关于集合框架的部分。Java集合框架是Java标准平台(SE)中的一部分,提供了超过4000个类,用于管理和组织其他多个对象。集合是Java编程中非常重要的概念,它们...

    学习笔记 java\CoreJava笔记\CoreJava_day11

    CoreJava_day11的学习笔记主要涵盖了集合框架,特别是关于List、Set和Map接口,以及ArrayList、Vector和LinkedList等具体实现类的知识点。 首先,集合框架是用来存放对象的对象,它提供了一组接口和类,使得我们...

Global site tag (gtag.js) - Google Analytics