this的使用方法

主要内容:
1. 使用this调用成员变量和成员函数

2.使用this调用构造函数

举个例子:

class Person{
    String name;
    void talk(){
        System.out.println("My name is " + name);
    }
}
主函数:

class Test2{
    public static void main(String args[]){
        Person p1 = new Person();
        p1.name = "zhangsan";

        Person p2 = new Person();
        p2.name = "lisi";

        p1.talk();
        p2.talk();
    }
}
运行结果如下:

My name is zhangsan
My name is lisi
疑问:

Java编译器是如何知道对应的name是属于哪个对象的呢?

其实talk函数中的:

System.out.println("My name is " + name)就相当于:

System.out.println("My name is " + this.name)

this就代表:调用这个talk函数的对象。在主函数中p1.talk()中的p1 就是this。在这里this是可以省略的。但是假如talk有参数的话,this就需要按实际情况选择省还是不省了。

class Person{
    String name;
    void talk(String name){
        System.out.println("My name is " + name);
        System.out.println("My name is " + this.name);
    }
}
主函数:

class Test2{
    public static void main(String args[]){
        Person p1 = new Person();
        p1.name = "zhangsan";

        p1.talk("lisi");
    }
}
运行结果:

My name is lisi
My name is zhangsan
可以看到省略的话,name就表示传入的参数,加入this.name的话,这个name还是表示这个对象的成员变量。

this的另一个作用:
假如有一个构造函数有三个参数,现在只需要其中两个参数,重新写一个构造函数显得代码冗余,使用this就可以解决:
Person(String name ,int age){
this.name = name;
this.age = age;
}

Person(String name ,int age ,String address){
this(name.age);
this.address = address;
}
这就省略了
this.name = name;
this.age = age;
的代码冗余。

注意:在构造函数中使用this调用本类中别的构造函数时,this必须是第一个语句,不然会报错。在一个构造函数中不能使用多个this调用本类的别的构造函数。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值