java里this的理解

先看下面的例子:

public class person {
    int age = -1;
    String name = "unknow";

    public person() {
    }

    public person(String _name, int _age) // 构造方法2
    {
        name = _name;
        age = _age;
    }

    public person(String _name) // 构造方法1
    {
        name = _name;
    }

    public void fun1() {
        System.out.println(name);
    }

    public void fun2() {
        person a2 = new person("a2");
        a2.fun1();
        this.fun1();
    }

    public static void main(String[] args) {
        person a1 = new person("a1");
        a1.fun2();
    }
}

运行结果:
这里写图片描述
通过这个例子可以看出:
this表示的是对象a1,所以this表示的是本类,使用this可以调用同类的其他对象。
:this.fun1();这里的可以省略,其实this就相当于所在的那个对象,所以在这儿可以省略,当省略是默认调用本类,但有的地方不能省略。比如:
在构造函数

public  person(String name)
{
    this.name=name;
}

这里的this就不能省略,因为名称相同。
还有一种情况,假设上面的构造方法2要调用构造方法1

public person(String _name,int _age)  //构造方法2
{
    this(name);
    age=_age;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值