知識社群登入
位置: 艾鍗學院 Blog > 專業論壇 > 討論
[Android實作問題] why get a warning ?
1樓
Hello Jarey,

int x;
  public void foo() {
    x = x;
  }
eclipse 說這分配是無用的,為啥呢?
Thank you
小K
2樓
先前漏看到這篇文章.

關於你貼的程式碼:
int x;
  public void foo() {
    x = x;
  }
基本上成員變數x宣告時不用給初始值,系統會預預給於 0 , 所以int x=0  ,
接著你在函式中寫到  x=x,  變數自己指派給自己值,所以當然是無用的,也就是這行code
不具任何義意. 
一般的應用應該應該是會是像這樣寫:
int x;
  public void foo(int x) {
    this.x = x;
  }
這樣就具有義意了,這是把區域變數中的x 指定到成員變數中的x. 因為變數名稱都相同,所以必須使用this
關鍵字來明確指定這個變數是指到成員變數中的x.