`
897371388
  • 浏览: 528462 次
文章分类
社区版块
存档分类
最新评论

java读书笔记——this

 
阅读更多

阅读书籍:《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代码易于阅读。由于java是一种自由格式(free-form)的语言,所以,空格,制表符,换行都不会影响程序的执行结果。 注意,尽管一下代码在C和C++中是合法的,但是在java中却不能这样书写: { int ...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    Jworld@TW技术论坛版主,Java权威技术顾问与专业讲师,Java畅销书作者——林信良全新力作。  国内第一本Java 7,前期版本累计销量5万册。  《Java JDK 7学习笔记》针对Java SE 7新功能全面改版,无论是章节架构或...

    Java开发详解.zip

    000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...

    java7rt.jar源码-Java_JVM:这是我的JavaJVM学习笔记

    This is my Java JVM learn notes JVM: java虚拟机 一:上篇——内存与垃圾回收器 二:中篇——字节码与类的加载 三:下篇——性能监控与调优篇 一: 上篇——内存与垃圾回收器 架构: jvm依赖的架构: 栈架构/寄存器...

    《Docker进阶与实战》(高清文字版 & 高清影印版)

    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 是当前火爆的...

    matlab导入excel代码-WithBeingIT:Java,注意事项

    虽然this调用方法可以省略this关键字,但是JAVA编译器会自己添加上 简言之,原来学习C++时不加this(实例对象)就使用方法的习惯不好 正确的方法调用语法是:对象.方法名()----->this.方法名 内部类/匿名类调用...

    java安卓仿微信聊天软件源码-tanchao:个人前端笔记

    java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...

    java安卓仿微信聊天软件源码-web:网络

    java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...

    java安卓仿微信聊天软件源码-Front-end-stack:需要学习的前端知识

    java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...

    java安卓仿微信聊天软件源码-lerningCenter:学习中心

    java安卓仿微信聊天软件源码 微注:在继续学习 & 积累,并率先于持续更新。 综合类 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程...

    java安卓仿微信聊天软件源码-Front--end:前端

    java安卓仿微信聊天软件源码 Front--end Front--end--tutorial 综合类 | 地址 --- | --- 前端知识体系| 前端知识结构| Web前端开发大系概览| Web前端开发大系概览-中文版| Web Front-end Stack v2.2| 免费的编程中文...

    java8集合源码分析-jxjjzm.github.io:逐步学习

    (笔者序:笔者总有一种感觉,总觉得看书、浏览博客、阅读源码的时候如果没有及时做下笔记总会觉得收获有限,就好像大学考试老师没有划重点一样心中没底。我一直认为读书是这样一个过程:书要先读厚再读薄最后慢慢...

    亚信java笔试题-tutorial:最全的资源教程-前端涉及的所有知识体系

    亚信java笔试题 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 免费的编程...

    亚信java笔试题-js-designer:大前端学习资料汇总,激励自己一下

    亚信java笔试题 微注:在继续学习 & 积累,并率先于持续更新。 综合类 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 ...

    java安卓仿微信聊天软件源码-book:书

    java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...

    java安卓仿微信聊天软件源码-front_material:front_material

    java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...

    java安卓仿微信聊天软件源码-Front-End-Development:web前端开发资源库

    java安卓仿微信聊天软件源码 内容整理自 's repositories: 。 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 ...

    亚信java笔试题-keep-learning:收集跟前端有关的学习资讯

    亚信java笔试题 keep-learning 收集跟前端有关的学习资讯 在继续学习 & 积累,并率先于持续更新。 综合类 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end ...

    java安卓仿微信聊天软件源码-xkDMW.github.mybookMarks:xkDMW.github.mybookMarks

    java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...

    java版五子棋源码-webstudy:我的第一个网络学习日志,内容html,js,php,css,

    java版五子棋源码 前端知识体系| 前端知识结构| Web前端开发大系概览| Web前端开发大系概览-中文版| Web Front-end Stack v2.2| 免费的编程中文书籍索引| 前端书籍| 前端免费书籍大全| 前端知识体系| 免费的编程中文...

Global site tag (gtag.js) - Google Analytics