java中的this关键字是什么意思

内容摘要
什么是this?this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。用法如下:用"this.成员变量名称"和重名的局部变量区分开来;用"this.成员方法名"访问成员方
文章正文

什么是this?

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

用法如下:

用"this.成员变量名称"和重名的局部变量区分开来;

用"this.成员方法名"访问成员方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Person{
    private String name;//成员变量
    private int age;
    Person(){}
    Person(String name){//局部变量
        this.name=name;//1.用"this.成员变量名称"和重名的局部变量区分开来
    }
    Person(String name,int age){
        this(name);
        this.age=age;
    }
    String getInfo(){//成员方法
        return "姓名:" + name + "
年龄:" + age;
    }
    void print(){
        System.out.println(this.getInfo());//2.用"this.成员方法名"访问成员方法。
        System.out.println(getInfo());//这种情况this关键字一般不写,让编译器自动添加。
    }
}
public class Test0505{
    public static void main(String[] args){
        Person p=new Person("张三",33);
        p.print();
    }
}

this()访问构造方法必须放在构造方法的第一行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Person{
    private String name;
    private int age;
    Person(){}
    Person(String name){//不含this()的构造方法
        this.name=name;
    }
    Person(String name,int age){//在构造方法内调用另一个构造方法
        this(name);//3."this();"访问构造方法必须放在构造方法的第一行
        this.age=age;
    }
    String getInfo(){
        return "姓名:" + name + "
年龄:" + age;
    }
    void print(){
        System.out.println(this.getInfo());
    }
}
public class Test0505{
    public static void main(String[] args){
        Person p=new Person("张三",33);
        p.print();
    }
}

返回对当前对象的引用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Leaf{
    private int i=0;
    Leaf increment(){
        i++;
        return this;//4.返回对当前对象的引用。
    }
    void print(){
        System.out.println("i="+i);
    }
}
public class Test0505{
    public static void main(String[] args){
        Leaf x=new Leaf();
        x.increment().increment().increment().print();
    }
}

将对当前对象的引用作为参数传递给其他方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Person{
    void eat(Apple apple){
        Apple peeled=apple.getPeeled();
        System.out.println(peeled);
    }
}
class Apple{
    Apple getPeeled(){
        System.out.println(this);//输出对当前对象的引用。
        return Peeler.peel(this);//5.将对当前对象的引用作为参数传递给其他方法。
    }
}
class Peeler{
    static Apple peel(Apple apple){
        return apple;
    }
}
public class Test0505{
    public static void main(String[] args){
        Apple a=new Apple();
        System.out.println(a);
        new Person().eat(a);
    }
}

推荐教程:Java教程

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!