2014-08-27 130 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); 

谢谢你,这么多!