如何创建返回计算值的公共计算函数?

时间:2014-08-27 14:24:50

标签: java android function

我想创建公共函数,用于计算某些值。我希望该值是函数的输出,例如:

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

而不是在其他地方使用它,如:

int final = Calculation(...);

我的计算量要大得多,所以我不想把它放在很多地方,我只是希望它放在一个地方,然后返回值,因为我需要多次使用它。我该怎么做?谢谢你的建议。

6 个答案:

答案 0 :(得分: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 :(得分:1)

将您的方法设为静态并将其放在某个实用程序类中。

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

}

然后您可以使用以下方法从任何其他类访问它:

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

答案 2 :(得分:1)

目前,您正在为变量分配值,并声明您的方法不会返回任何内容。相反,你应该让它返回结果:

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

如果该方法不需要任何状态,您可以将其设为静态方法,这样您就可以在没有声明类的实例的情况下调用它。

如果你需要在类型本身内的方法;把它私有化。如果您在类型层次结构中需要它,请将其保护。如果您需要在同一个包中,请为其提供默认访问权限(无修饰符)。如果您在任何地方都需要它,请将其公之于众。

答案 3 :(得分: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);

  3. 有关静态方法的详细信息,请参阅this

答案 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);

我希望有所帮助。

答案 5 :(得分:0)

谢谢大家!我做的。我现在就这样使用它,似乎有用......

 public int Izracunavanje(int rezultat)
    {

      ...

        rezultat = ...;
    return rezultat;
}

当我想在其他功能中调用它时,它就像:

rezultat = Izracunavanje(rezultat);

非常感谢你!