2014-02-12 100 views
-1

我的問題的標題與我的問題完全不同。我很抱歉,因爲我不知道這個問題應該是什麼標題。如何爲一個變量定義一個固定值?

假設我有一類我們說「ClassA的」

Class ClassA 
{ 

    int x=5; 
    int y=6; 
    int z=7; 
    static public int sum(int a,int b) 
    { 
     return (a+b); 
    } 

} 

現在我需要)一些邏輯的,我可以用總和(如在另一個類

int c = ClassA.sum(x,y); 
int d = ClassA.sum(x,z); 

這裏我不以下t需要聲明「x」,「y」和「z」變量。它必須是一個在ClassA中定義的值。

我的問題可能很愚蠢,但只是幫助我。

我該怎麼辦?

回答

0

可以聲明的x,y和z爲const

class ClassA 
{ 

    public const int x=5; 
    public const int y=6; 
    public const int z=7; 
    static public int sum(int a,int b) 
    { 
     return (a+b); 
    } 
} 

然後做:

int c = ClassA.sum(ClassA.x,ClassA.y); 
+0

除了使用常量之外,還有其他什麼。 (如enumerable或其他) –

+0

如果它們是可變的,你可以聲明它們是靜態的。 – Candide

0

可以傳遞一個對象的實例,以靜態方法,它可以調用實例該對象的成員。

class ClassA 
{ 

    int x=5; 
    int y=6; 
    int z=7; 
    static public int sum(ClassA obj) 
    { 
     return (obj.x+ obj.y); 
    } 
} 

在其他類中創建的ClassA類的實例,如果下面的代碼符合你要求的這個對象傳遞給靜態方法

ClassA objA = new ClassA(); 
int c = ClassA.sum(objA); 
+1

如果我想總結(x,z)怎麼辦? –

0

檢查。

創建爲一個枚舉:

public enum MyEnum 
{ 
    x,y,z 
} 

的ClassA的代碼將是:

class ClassA 
{ 
    static int x = 5; 
    static int y = 6; 
    static int z = 7; 

    static public int sum(MyEnum enum1, MyEnum enum2) 
    { 
     int a = 0; 
     int b = 0; 

     switch (enum1) 
     { 
      case MyEnum.x: 
       a = x; 
       break; 
      case MyEnum.y: 
       a = y; 
       break; 
      case MyEnum.z: 
       a = z; 
       break; 
      default: 
       break; 
     } 

     switch (enum2) 
     { 
      case MyEnum.x: 
       b = x; 
       break; 
      case MyEnum.y: 
       b = y; 
       break; 
      case MyEnum.z: 
       b = z; 
       break; 
      default: 
       break; 
     } 

     return (a + b); 
    } 
} 

我已經設置X,Y,Z爲靜態的,因爲你的方法是靜態的,你不能訪問實例成員在靜態方法中。或者,您可以用const代替static,同時聲明變量x,y,z。

希望這會有所幫助。

相關問題