閱讀655 返回首頁    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-03 07:57:18

  上一篇:go iBATIS批量操作
  下一篇:go java關鍵字——strictfp