程序员必会之java关键字中this、this()用法

this只能在类中的非静态方法中使用

this

  • 引用本类中的成员属性或方法。
public class Cat {
    private String name;
    public void eat () {
        // this引用本类的成员属性
        System.out.println(this.name);
    }
    public void drink () {
        // this引用本类中的方法
        this.eat();
    }
}
  • 当方法的形参和成员属性一致时,用this区分。通常在set方法里。
private String name;
public void setName(String name) {
  this.name = name;
}
  • 指代当前类对象。
private String name;
public Cat eat(String name) {
  this.name = name;
  return this;
}
public static void main(String[] args) {
  Cat cat1 = new Cat();
  Cat cat2 = cat1.eat("鱼");
  System.out.println(cat2.name); 
  // 鱼
}

this()

  • 指代当前类的无参构造函数。
  • 构造函数必须放在第一行,且只能存在一个。
private String name;
    private int age;
    public Cat() {
        System.out.println("cat无参构造");
    }
    public Cat(String name) {
        // 必须放在第一行
        this();
        System.out.println("cat有参构造 " + name);
    }
    public Cat(String name, int age) {
        // 只能存在一个this()
        this(name);
        System.out.println("cat有参构造" + name + " " + age);
    }
    public static void main(String[] args) {
        new Cat();
        // cat无参构造
      
        new Cat("小白");
        // cat无参构造
        // cat有参构造 小白
      
        new Cat("小橘",3);
        // cat无参构造
        // cat有参构造 小橘
        // cat有参构造小橘 3
    }
程序员必会之java关键字中this、this()用法

例子

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章