2014-08-27 114 views
0

我想創建公共函數,這將用於計算一些價值。我希望值是函數的輸出,例如:如何創建返回計算值的公共計算函數?

public void Calculation(...) 
{ 
x = y+z/2 +i; 
if(x >= 10) 
{ 
calculation = 1; 
} 
else if(x < 10) 
{ 
calculation = 0; 
} 
} 

比,像用它在其他地方:

int final = Calculation(...); 

我的計算是一個很大的更大,所以我不喜歡把它放在很多地方,我只是希望它放在一個地方,並且返回價值,因爲我需要多次使用它。我怎樣才能做到這一點?謝謝你的建議。

+2

你不能使用一個名爲'final'的變量,這是一個java關鍵字,並且這個計算函數有一個'void'返回值....如果你想設置一個變量給它需要的函數調用返回給定變量的類型。 – 2014-08-27 14:27:06

+0

啊,好的。 xD我只是輸入了我想到的第一件事xD – 2014-08-27 14:28:37

+0

@НиколаПејић:給*逼真的例子很重要。目前還不清楚您是否不知道如何編寫返回內容的方法,或者您的問題是否涉及其他問題。 – 2014-08-27 14:38:31

回答

1

,你賦值給一個變量,並聲明你的方法不返回任何內容:

public class CalculationUtils 
{ 
    public static someReturnType yourMethod (...someParams...) 
    { 
     .... 
     return ... 
    } 

} 

然後你可以使用任何其它類訪問它。相反,你應該只是使它返回結果:

public int calculate(...) 
{ 
    int x = y+z/2 +i; 
    if(x >= 10) 
    { 
     return 1; 
    } 
    else if(x < 10) 
    { 
     return 0; 
    } 
    return 2; // Or whatever... 
} 

如果該方法不需要任何狀態,你可以把它的靜態方法,所以你可以把它無需聲明類的一個實例。

如果您需要該類型本身的方法;使其私密。如果您需要在類型層次結構中使用它,請將其保護起來。如果你在同一個軟件包中需要它,給它默認訪問權限(沒有修飾符)。如果您在任何地方都需要它,請將其公開。

1

使你的方法是靜態的,並把它放在一些實用類中。目前

someReturnType varName = CalculationUtils.yourMethod(...params...); 
+0

我忘了添加,我對android非常陌生,爲了開發,所以我不知道該怎麼做...... xD – 2014-08-27 14:27:46

1

聲明一個名爲Utils的類,該類將有一個可以在任何地方調用的靜態方法。像這樣:

public class Utils 
{ 
    public static Integer calculationMethod(params) 
    { 
     int calculation = 0; 
     x = y+z/2 +i; 
     if(x >= 10) 
     { 
      calculation = 1; 
     } 
     else if(x < 10) 
     { 
      calculation = 0; 
     } 

     return calculation; 
    } 
} 

您可以在Utils類或類之外調用此方法。

  1. 調用utils的類中:

    Integer value = calculationMethod(params);

  2. 調用utils的類外:

    Integer value = Utils.calculationMethod(params);

更多有關靜態方法看this

5

創建一個名爲Util的新類,並添加該方法;

public class Util { 

    public static int Calculation(int x, int y, int z, int i) { 
     int calculation=0; 
     x = y + z/2 + i; 
     if (x >= 10) { 
      calculation = 1; 
     } else if (x < 10) { 
      calculation = 0; 
     } 

     return calculation; 
    } 
} 

然後從任何地方,你都可以這樣稱呼它;

int final_value = Util.calculation(1,2,3,4); 
1

試試這個:

public class Utitlity 
{ 
    public int static calculateAndReturnSomeValue(int x, int y, int z, int i) 
    { 
     //do some calculations here 

     int calculation = 0; 

     x = y+z/2 +i; 

     if(x >= 10) 
     { 
      calculation = 1; 
     } 
     else if(x < 10) 
     { 
      calculation = 0; 
     } 

     return calculation; 
    } 

} 

現在,當你想使用它,你可以這樣做:

int result = Utility.calculateAndReturnSomeValue(2, 4, 6, 9); 

我希望幫助。

+0

你也需要'int calculation = 0;否則你會得到一個空指針從這個代碼... – 2014-08-27 14:35:04

0

謝謝大家!我做的。我現在這樣使用它,它似乎工作...

public int Izracunavanje(int rezultat) 
    { 

     ... 

     rezultat = ...; 
    return rezultat; 
} 

,當我想它調用等功能,它是這樣的:

rezultat = Izracunavanje(rezultat); 

謝謝你,這麼多!