Java的this关键字

含义


在《Thinking in Java》中写到

this关键字(注意只能在方法内部使用)可为已调用其方法的那个对象生成相应的句柄。可像对待其他任何对象句柄一样对待这个句柄。但要注意,假若从自己的某个类中的另一个方法内部调用一个类方法,就不必使用this

我们知道,Java对对象进行操作实际上是对他们的句柄进行操作,而this关键字用来选中调用该方法的实例。
这样做有许多作用。

作用


区别同名同传入参数和类的属性
public class Name{
    private String name;
    public void setName(String name){
        this.name = name;
    }
}

这是一个简单的setter,用来修改类中私有属性的值。通过this关键字,Name类中的name和传入的name被区分开。

通过返回自身对象实现一条语句连续调用方法进行操作

这是《Thinking in Java》中的例子。

public class Number{
    private int i = 0;
    Number increment(){
        i++;
        return this;
    }
    void print(){
        System.out.println("i = " + i);
    }

    public static void main(String[] args){
        Number n = new Number();
        n.increment().increment().increment().print();
    }
}

运行该程序会打印出3。方便地对同一个对象进行了多次操作。

在构造器中调用构造器

通过this(/*possible params*/)可以在一个构造器中调用另一个构造器。

public class Person{
    private String firstName;
    private String lastName;
    public Person(String s){
        firstName = s;
    }

    public Person(String fn, String ln){
        this(fn);
        lastName = ln;
    }

    public void print(){
        System.out.println(firstName + lastName);
    }

    public static void main(String[] args){
        Person p = new Person("Madoka","Kaname");
        p.print();
    }
}

运行可以输出

MadokaKaname

这种方式有三个值得注意的地方。

  • 构造器中只能调用一个构造器
  • 构造器的调用必须放在最开始
  • 只有构造器可以调用其他构造器
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值