黑马程序员-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赋值给成员中的nameage,加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培训、期待与您交流! ----------------------