灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2177回复:0

java中的this关键字

楼主#
更多 发布于:2012-09-08 09:39


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;
}
}


喜欢0 评分0
游客

返回顶部