阅读书籍:《Fundamentals of JAVA Programming》(Fifth Edition)
Page 149:LEARNING ABOUT THE this REFERENCE
C++和Java之中都是有指针的,但是有个显著的区别就是C++中的this是指针,而Java中是引用。
Java中的this指的是它所属的对象本身。在类内部通常忽略使用this,比如:
public int getEmpNum()
{
return empNum;
}
public int getEmpNum()
{
return this.empNum;
}
上述两个方法在类内部是完全相同的。
你也许会疑问,那么使用this有什么用呢。请看下面的代码:
public class Student
{
private int stuNum;
private double gpa;
public Student(int stuNum,double gpa)
{
stuNum = stuNum;//Error
gpa = gpa;//Error
}
}
上述代码中标记Error的地方是有错误的,在构造器中并不会使Student类的私有成员stuNum和gpa初始化。
形参已经把私有成员覆盖掉了。。
在构造器的块作用域中,默认的stuNum是传入的形参,而不是类的私有成员。
public class Student
{
private int stuNum;
private double gpa;
public Student(int stuNum,double gpa)
{
this.stuNum = stuNum;
this.gpa = gpa;
}
}
这样this的作用你就明白了吧。
this的产生还有一个重要的原因,那就是使得构造器重载更有效。
只要看两段代码,你就明了了。
代码一:
public class Student
{
private int stuNum;
private double gpa;
Student(int Num,double avg)
{
stuNum = Num;
gpa = avg;
}
Student(double avg)
{
stuNum = 999;
gpa = avg;
}
Student(int Num)
{
stuNum = Num;
gpa = 0.0;
}
Student()
{
stuNum = 999;
gpa = 0.0;
}
}
代码二:
public class Student
{
private int stuNum;
private double gpa;
Student(int Num,double avg)
{
stuNum = Num;
gpa = avg;
}
Student(double avg)
{
this(999,avg);
}
Student(int Num)
{
this(num,0.0);
}
Student()
{
this(999,0.0);
}
}
写到这里不知不觉的想到了super。那就下期再聊super。
分享到:
相关推荐
缩排格式使java代码易于阅读。由于java是一种自由格式(free-form)的语言,所以,空格,制表符,换行都不会影响程序的执行结果。 注意,尽管一下代码在C和C++中是合法的,但是在java中却不能这样书写: { int ...
Jworld@TW技术论坛版主,Java权威技术顾问与专业讲师,Java畅销书作者——林信良全新力作。 国内第一本Java 7,前期版本累计销量5万册。 《Java JDK 7学习笔记》针对Java SE 7新功能全面改版,无论是章节架构或...
000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...
This is my Java JVM learn notes JVM: java虚拟机 一:上篇——内存与垃圾回收器 二:中篇——字节码与类的加载 三:下篇——性能监控与调优篇 一: 上篇——内存与垃圾回收器 架构: jvm依赖的架构: 栈架构/寄存器...
This book is sure to inform and entertain those wishing to learn more about building modern distributed applications. —— Rob Haswell Co-Founder and VP Product, ClusterHQ Docker 是当前火爆的...
虽然this调用方法可以省略this关键字,但是JAVA编译器会自己添加上 简言之,原来学习C++时不加this(实例对象)就使用方法的习惯不好 正确的方法调用语法是:对象.方法名()----->this.方法名 内部类/匿名类调用...
java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...
java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...
java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...
java安卓仿微信聊天软件源码 微注:在继续学习 & 积累,并率先于持续更新。 综合类 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程...
java安卓仿微信聊天软件源码 Front--end Front--end--tutorial 综合类 | 地址 --- | --- 前端知识体系| 前端知识结构| Web前端开发大系概览| Web前端开发大系概览-中文版| Web Front-end Stack v2.2| 免费的编程中文...
(笔者序:笔者总有一种感觉,总觉得看书、浏览博客、阅读源码的时候如果没有及时做下笔记总会觉得收获有限,就好像大学考试老师没有划重点一样心中没底。我一直认为读书是这样一个过程:书要先读厚再读薄最后慢慢...
亚信java笔试题 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 免费的编程...
亚信java笔试题 微注:在继续学习 & 积累,并率先于持续更新。 综合类 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 ...
java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...
java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...
java安卓仿微信聊天软件源码 内容整理自 's repositories: 。 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 ...
亚信java笔试题 keep-learning 收集跟前端有关的学习资讯 在继续学习 & 积累,并率先于持续更新。 综合类 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end ...
java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...
java版五子棋源码 前端知识体系| 前端知识结构| Web前端开发大系概览| Web前端开发大系概览-中文版| Web Front-end Stack v2.2| 免费的编程中文书籍索引| 前端书籍| 前端免费书籍大全| 前端知识体系| 免费的编程中文...