美文网首页
this关键字

this关键字

作者: weiliping | 来源:发表于2018-06-04 20:50 被阅读0次

Java中的this关键字用于引用当前对象或类的实例。 它可以在构造函数中用于调用任何其他重载的构造函数,但是此this关键字应该放在造函数的第一行。

this用于实例变量

package org.keyword;

public class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void workOnAssignment() {
        // Working on assignment
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public static void main(String args[]) {
        Person e1 = new Person("Leo", 20);
        System.out.println("Person's name : " + e1.getName());
        System.out.println("Person's age : " + e1.getAge());
    }
}

当你运行上面程序时,你将会得到以下输出结果:

Person's name : Leo
Person's age : 20

我们可以使用this关键字来为构造函数中的实例变量赋值。

this用于调用重载构造函数

如果你想调用同一类的重载构造函数,可以使用this关键字来调用。
如下所示:

package org.keyword;

public class PersonB {

    String name;
    int age;

    public PersonB() {
        System.out.println("Calling No arg constructor");
    }

    public PersonB(String name, int age) {
        this();
        System.out.println("Calling Parameterized constructor");
        this.name = name;
        this.age = age;
    }

    public void workOnAssignment() {
        // Working on assignment
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public static void main(String args[]) {
        PersonB e1 = new PersonB("John", 20);
        System.out.println("Person's name : " + e1.getName());
        System.out.println("Person's age : " + e1.getAge());
    }
}

当你运行上面程序时,你将会得到以下输出结果:

Calling No arg constructor
Calling Parameterized constructor
Person's name : John
Person's age : 20

请注意,用于调用另一个构造函数的this语句应该放在该构造函数中的第一行。

this用于返回类的对象

package org.keyword;

public class PersonC {
    String name;
    int age;

    public PersonC(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void workOnAssignment() {
        // Working on assignment
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public PersonC getPerson() {
        System.out.println("Call method(getPerson) to return this");
        return this;
    }

    public static void main(String args[]) {
        PersonC e1 = new PersonC("John", 20);
        PersonC e1Copy = e1.getPerson();
        System.out.println("PersonC's name : " + e1Copy.getName());
        System.out.println("PersonC's age : " + e1Copy.getAge());
    }
}

当你运行上面程序时,你将会得到以下输出结果:

Call method(getPerson) to return this
PersonC's name : John
PersonC's age : 20

相关文章

网友评论

      本文标题:this关键字

      本文链接:https://www.haomeiwen.com/subject/fxpssftx.html