阅读942 返回首页    go 阿里云 go 技术社区[云栖]


java中的this关键字

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

 

最后更新:2017-04-02 18:44:46

  上一篇:go 安卓手机获取当前连接的WIFI相关信息
  下一篇:go 韩顺平的分页代码