从一个单独的类运行

时间:2011-07-03 18:46:37

标签: java

所以我需要从第二个类开始运行这个类。我怎么做?这是我想从一个单独的类运行的代码:

import java.util.*;

public class Numbers {

    int min(int a, int b, int c, int d, int e) {
        int min1 = Math.min(a, b);
        int min2 = Math.min(c, d);
        int min3 = Math.min(min1, min2);
        int min4 = Math.min(min3, e);

        return min4;
    }
    int max(int a, int b, int c, int d, int e) {
        int max1 = Math.max(a, b);
        int max2 = Math.max(c, d);
        int max3 = Math.max(max1, max2);
        int max4 = Math.max(max3, e);

        return max4;
    }
    double avg(int a, int b, int c, int d, int e) {
        double average = (a+b+c+d+e)/5;

        return average;
    }
    double stddev(int a, int b, int c, int d, int e) {
        double average = (a+b+c+d+e)/5;
        double a1 = Math.pow((a-average),2);
        double b1 = Math.pow((b-average),2);
        double c1 = Math.pow((c-average),2);
        double d1 = Math.pow((d-average),2);
        double e1 = Math.pow((e-average),2);
        double average2 = (a1+b1+c1+d1+e1)/5;
        double x;
        x = Math.sqrt(average2);
        return x;

    }

}

6 个答案:

答案 0 :(得分:3)

在另一个类的某个地方,您实例化此类并调用适当的方法:

Numbers instance = new Numbers();
int maxValue = instance.max(1, 2, 3, 4, 5);

答案 1 :(得分:3)

你的意思是调用Numbers类中的方法?您可以按如下方式执行此操作:

public Main{
    public static void main( String[] args ){
            Numbers numbers = new Numbers(); // Instance

            int minimum = numbers.min( 1, 2, 3, 4, 5 );
            System.out.println( "minimum:" + minimum );

            int maximum = numbers.max( 1, 2, 3, 4, 5);
            System.out.println("maximum:" + maximum );

            double average = numbers.avg( 1, 2, 3, 4, 5 );
            System.out.println("average:" + average );

            double standardDev = numbers.devstd( 1, 2, 3, 4, 5 );
            System.out.println("standard deviation:" + standardDev );
    }   
}

更好的是,将这些方法设为静态,因为它们不依赖于任何属性:

public static int min(int a, int b, int c, int d, int e) {
    int min1 = Math.min(a, b);
    int min2 = Math.min(c, d);
    int min3 = Math.min(min1, min2);
    int min4 = Math.min(min3, e);

    return min4;
}

public Main{
    public static void main( String args[] ){
            int minimum = Numbers.min( 1, 2, 3, 4, 5);
            System.out.println( "minimum:" + minimum );
    }   
}

使用更通用的方法添加奖励:

public static int min(int[] intArray ) {
    // If empty/null array throws Exception. Caller/supplier should handle this.
    int min = intArray[0]; 

    for( int i = 1; i < intArray.length; i++ ){
            min = Math.min(min, intArray[i]);
    }

    return min;
}

答案 2 :(得分:2)

在另一个类中创建此类的对象(注意:在同一个包中)。

像这样,

Numbers n = new Numbers();
int minimum = n.min(10,20,30,40,50);
System.out.println(minimum);          // Prints 10
int maximum = n.max(10,20,30,40,50);
System.out.println(maximum);          // Prints 50
double average = n.avg(10,20,30,40,50);
System.out.println(average);          // Prints 30
double dev = n.devstd(10,20,30,40,50);

答案 3 :(得分:1)

如果你的类在同一个包中(例如,如果你在Eclipse中使用默认设置,那么它将是),然后在你的新类中,你可以像调用Math.pow一样调用这些函数

double l_stddev = Numbers.stddev(1,2,3,4,5);

例如。

编辑:糟糕 - 错过了这些不是静态方法。您可以在Numbers类中将它们设置为静态,然后您不需要创建一个对象来调用它们(就像Math类实际上一样)

正如另一个答案所说的那样,你需要创建一个Number对象。

答案 4 :(得分:1)

在另一个类中,在main()方法中创建一个Numbers类的对象并调用所需的方法。

    Numbers obj=new Numbers();
     obj.max( a,  b,  c,d ,e);

答案 5 :(得分:1)

我不知道你从一个单独的类运行是什么意思,但如果你想从另一个类调用这些函数,你应该让它们变为静态:

public static int min(...

然后你称之为:

int m = Numbers.min(...

来自任何你想要的地方。