2013-12-19 21 views
-5

他們大多在思考像「setX的()&的getX()」 X是名(我的本意是在地方,你可以採取任何名稱的X)
下面是我的代碼:Setters是否可以有多個參數?如果它是如何有用?

public int getX() { 
    return ---; 

} 
public void setX(some X ,some Y) 
{ 
} 

這裏我的疑問是,我怎麼能設置兩個值setX()。以及我如何獲得這些價值。可能嗎?

+0

那麼,你有語言結構與公約的東西。按照慣例,安裝者只需要一個參數。然而方法可以有很多。所以,只要將事情放在一起是有道理的,就這樣做,但也許使用一個更好的名稱來表示它不是一個setter(它仍然只是一個方法)。 – Matthias

回答

1

Setter通常是指設置一個類變量的值的方法。所以它只需要一個參數。如果你想要一個設置兩個類變量值的方法,你當然可以這樣做,但這通常不是setter的含義。

基於OP提出的其他問題,我認爲他需要這樣的東西。

public class Test001 { 

     private int x; 

     private int y; 

     public int getX() { 
      return x; 
     } 

     public void setX(int x) { 
      this.x = x; 
     } 

     public int getY() { 
      return y; 
     } 

     public void setY(int y) { 
      this.y = y; 
     } 

     public void setXY(int x, int y) { 
      setX(x); 
      setY(y); 
     } 

     public int[] getXY() { 
      return new int[] { x, y }; 
     } 

    } 
+0

如果我爲我的setX()方法設置了兩個值,我如何獲得這些值 – Prabha

+0

@Prabha將它們保存在兩個單獨的類變量中。然後你將它們存儲在那裏,你可以得到它們。 –

+0

@Prabha查看更新的答案。 –

0

通常我們使用setter作爲類變量的設定值。這是常用的。但是如果你想解析兩個值(兩個參數),你可以解析,因爲setter也是一種方法。

public int[] getXY() { 
    return new int[]{x,y}; // return both x and y 

} 

public void setXY(int x, int y) { // set both x and y 
    this.x = x; 
    this.y = y; 
} 
+0

我怎樣才能得到這些值 – Prabha

+0

@Prabha你可以做到像 –

+0

之類的東西非常感謝你。使用Web應用程序時有任何用處 – Prabha

0

設置器指的是設置一個實例變量(公約)的值; 沒有類別變量,如前面的一些評論所述。實例和類變量之間有區別。約定是爲每個需要訪問或設置的實例變量設置一個setter。這是一個概念,如果封裝一個類的屬性,從而訪問類的屬性或運行時的對象,在程序中受到其他對象的保護。

您使用getters獲取這些屬性的值。

0

如果您將方法命名爲setX,並且設置了Y,那麼您很快會遇到一些困惑(錯誤)。你可以使用的一件事

public void setXAndY(some X, some Y) { // not recommended 
    this.X = X; 
    this.Y = Y; 
} 

而關於獲取多個值或者使用數組或List。

public some[] getXAndY() { 
    return new some[]{ this.X, this.Y }; 
} 
+0

我的意思是setX()。取代X,你可以取任何不像X的名字 – Prabha

相關問題