黑马程序员-this关键字的学习概述
来源:互联网 发布:爱普生l360清洗软件 编辑:程序博客网 时间:2024/05/17 04:42
---------------------- android培训、java培训、期待与您交流! ----------------------
首先说一下this关键字的特点:this代表其所在函数所属对象的引用。换言之,this代本类对象的引用。但代表哪个对象呢,它所代表的就是当前对象。(记住它自己不是对象,只是当前对象的一个引用。)(原理和核心)
那什么时候使用this关键字呢?这是一个值得我们思考的问题,废话不多说,当我们定义功能时,功能内部如果使用到了调用该功能的对象,此时就需要用this。具体的可以看下面两种情况:
1当成员变量和局部变量重名的时候,为了区分这种情况我们可以使用一个关键字来完成,就是this。
总的一句话:定义功能时,如果功能中用到了本类对象,这时就使用this这个关键字表示这个对象。例如:一个教室里面给老师提供了一个座位,哪个老师来,这个位置就代表哪个老师。
2构造函数之间的调用:构造函数之间的调用可以使用this关键字,后面跟上小括号,指定具体的实参即可明确要调用的构造函数。this(对应的实参);(这种调用只能用在构造函数之间)
注意:调用本类中构造函数的this语句必须定义在构造函数的第一行因为初始化动作要先完成。
实现代码如下:
class Person
{
private String name;
private int age;
Person()
{
System.out.println("Person run");
}
person(String name,int age)
{
this();//像这样的就是构造函数之间的调用,调用语句必须定义在第一行,这是规则。
this.name=name;//左右两边都是局部变量,并没有把name赋值给成员中的name和age,加this之后指的就是成员变量name;
this.age=age;
}
public void speak()
{
System.out.println(this.name+this.age);
}
public void method()
{
this.speak();
}
}
class personDemo
{
public static void main(String[] args)
{
Person p1=new person('"lisi",30);
p1.speak();//此时this代表p1
Person p2=new person('"zhangsan",26);
p2.speak();//此时this代表p2
}
}
另外:我们要注意一般函数是不能调用构造函数的,因为构造函数是起初始化作用的,必须初始化之后才能调用,但构造函数可以调用一般函数。
我们在学习的时候,不仅要知道this的用法,还要能够让this融入到我们的代码中,达到学以致用,充分理解和掌握this关键字的核心思想以及原理。
---------------------- android培训、java培训、期待与您交流! ----------------------
- 黑马程序员-this关键字的学习概述
- 黑马程序员-面向对象概述 构造函数与this关键字
- 黑马程序员---this 关键字:
- 【黑马程序员】this关键字
- 黑马程序员------this关键字
- 黑马程序员-this关键字
- 黑马程序员-Java-this关键字
- 黑马程序员 java学习笔记之一(java中this和super关键字的用法)
- 黑马程序员---基础-概述、封装、构造方法、this和static关键字、继承
- 《黑马程序员》java中this关键字的用法
- 黑马程序员--封装,构造函数,this关键字,静态的整理
- 黑马程序员--关于Java关键字this的用法说明
- 黑马程序员笔记:Java基础知识之this关键字的使用
- 黑马程序员_java中this关键字的作用
- 黑马程序员——Java 基础:this 关键字的使用
- 黑马程序员 ------Static关键字的学习
- 黑马程序员 JAVA this关键字总结
- 黑马程序员——this关键字
- Toy3D引擎:网页游戏3D化的利器
- 页游进入3D时代 引发双游之争
- 穿越红尘不扰关,回旋天地去复还
- dump命令4——bitmap index
- Angelica 引擎
- 黑马程序员-this关键字的学习概述
- The Struts dispatcher cannot be found. This is usually caused by using Struts
- linux java 分析工具jstact- java stack
- 数据库表中有重复记录,如何删除这些重复记录保留ID最大的一个信息
- 国内网络游戏开发技术现状和趋势
- Pandaboard ES学习日志_总体开发流程
- 图解ScrollViewer的ExtentHeight和ViewportHeigh
- 国内自主研发的游戏引擎一览
- OverMax成为首款签约海外国产游戏引擎