标签搜索

java中this关键字

ATAO
2022-01-23 / 0 评论 / 53 阅读 / 正在检测是否收录...

this关键字的作用

  • this调用本类中的属性,也就是类中的成员变量
  • this用在方法中,谁调用这个方法,this就代表谁
  • this调用本类中的其他构造方法,调用时要放在构造方法的首行

应用一. 调用本类中的属性

Public Class Student { 
    String name; //定义一个成员变量name
    private void SetName(String name) { //定义一个参数(局部变量)name
        this.name=name; //将局部变量的值传递给成员变量
    }
}

应用二. 调用类的构造方法

public class Student { //定义一个类,类的名字为student。 
    public Student() { //定义一个方法,名字与类相同故为构造方法
        this(“Hello!”);
    }
    public Student(String name) { //定义一个带形式参数的构造方法
    }
}

应用三. 返回对象的值

当this作为对象的默认引用使用时,程序可以像访问普通引用变量一样来访问这个this引用,甚至可以把this当成普通方法的返回值。请看下面程序:

public class Person {
    public int age;
    public Person grow() {
        age ++;
        return this;
    }
    public static void main(String[] args) {
        Person p = new Person();
        //可以连续调用同一个方法
        p.grow().grow().grow();
        System.out.println("p对象的age的值是:"+p.age);
    }
}

运行结果为:

p对象的age的值是:3

从上面的程序可以看出,如果在某个方法中把this作为返回值,则可以多次连续调用同一个方法,从而使得代码更加的简洁。但这种方式容易造成实际意义的模糊,例如上面的group()方法,用于表示对象的生长,即age变量的值加1,实际上不应该有返回值。

最后需要强调一点:静态成员不能直接访问非静态成员,即static修饰的方法不能访问不适用static修饰的普通方法。对于static修饰的方法而言,可以使用类直接调用该方法,如果在static修饰的方法中使用this关键字,则这个关键字就无法指向合适的对象。所以,static修饰的方法中不能使用this引用。

0

评论 (0)

取消