Java中this的用法

this关键字可以用来访问本类的属性、方法、构造器

运行下列代码

public static void main(String[] args) {
        Cat cat = new Cat();
        cat.miao();
        cat.twice();
        Cat cat1 = new Cat("who");
    }
class Cat{
    private String name="皮蛋";

    public Cat(String name){
        this();//访问本类的Cat()无参构造器
        this.name = name;
        System.out.println("这是Cat类的(String name)构造器");

    }
    public Cat(){
        System.out.println("Cat的无参构造器");
    }

    public void miao(){
        System.out.println("小猫"+this.name+"喵喵叫");//this访问本类的name属性
    }
    public void twice(){
        System.out.println("twice里的miao方法");//this访问本类的maio方法
        this.miao();
    }

}

结果如下图所示
1.主方法中先用无参构造器创建了一个Cat类对象,所以第一句话输出的是Cat的无参构造器。
2.调用了cat.miao方法,里面的this.name访问了本类的name属性
3.调用了cat.twice方法,里面的this.miao访问了本类的miao方法
4.主方法中用有参构造器创建了一个Cat类对象,this()访问了本类的无参Cat()构造器,所以会先输出Cat的无参构造器。
在这里插入图片描述
由此可知,
访问成员属性的语法:this.属性名;
访问成员方法的语法:this.方法名(参数列表);
访问构造器语法:this(参数列表);
注意只能在构造器中使用(即只能在构造器中访问另外一个构造器)。

this关键字用来区分属性和形参

还是上面的代码

class Cat{
    private String name="皮蛋";
   
    public Cat(String name){
        this.name = name;

    }

可以看到Cat类的构造器的形参(String name)与Cat类的属性名name相同
为了区别两者,可以用this.name来表示Cat类的属性名name

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值