java中的this关键字

本文详细介绍了Java中的this关键字,解释了其如何在一个类的方法中引用该类的其他方法或属性。通过实例展示了this关键字在构造方法及普通方法中的正确使用方式,并强调了在静态方法中不可使用this的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java提供了this关键字,this关键字表示该类的对象的默认引用。

this关键字最大的作用是,让类的一个方法,访问该类的另一个方法或者属性。


先看一个不好的例子:

public class Baby
{
public void wakeUp()
{
System.out.println("宝宝醒啦");
}

public void eat()
{
Baby baby = new Baby();
baby.wakeUp();
System.out.println("吃东西");
}
}

这样不符合逻辑。这就相当于本对象的eat方法,需要调用另一个对象的wakeUp方法。


我们看这个例子:

public class Baby
{
public void wakeUp()
{
System.out.println("宝宝醒啦");
}

public void eat()
{
this.wakeUp();
System.out.println("吃东西");
}
}

这样就符合逻辑了。自己的eat方法,还需要自己的一个wakeUp方法。


java允许同一个对象的方法直接调用该对象的属性或者方法,所以this可以省略。

public class Baby
{
public void wakeUp()
{
System.out.println("宝宝醒啦");
}

public void eat()
{
wakeUp();
System.out.println("吃东西");
}
}

而在静态方法中无法使用this,因为类可以直接调用该方法,所以this无法指向合适的对象。


public class Baby
{
public void wakeUp()
{
System.out.println("宝宝醒啦");
}

public static void eat()
{
// 报错
wakeUp();
System.out.println("吃东西");
}
}

我们再来看一个最常用的例子,就是在构造方法中使用this

public class Baby
{
private String name;
private int age;

public Baby(String name, int age)
{
super();
this.name = name;
this.age = age;
}

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public int getAge()
{
return age;
}

public void setAge(int age)
{
this.age = age;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值