如何在Eclipse中运行一个Java类,然后运行另一个Java类?

时间:2013-11-13 18:54:38

标签: java eclipse

我知道这可能是一个奇怪的问题,但我真的被卡住了。我有两个类的简单程序。我需要从A类传递数组到B类。我做了但我无法测试它,因为我不知道如何运行程序。当我点击运行时,只启动了一个班级。我想测试整个程序,但找不到任何方法。是否有任何命令或某事说运行A类然后运行B类?没有它,我无法测试B类,因为未加载Array(A类)中的值:/希望您理解我的意思。

我正在使用eclipse。

谢谢!

Class MarkCalculator

import java.util.Scanner;

public class MarkCalculator {

public static int[] exam_grade = new int[6];
public static int[] coursework_grade = new int[6];
public static int[] coursework_weight = new int[2];
public static int[] module_points = new int[6];
public static String module_grade, holder;
public static int counter1 = 0, counter2 = 0;

public static void main(String[] args) {

Scanner input = new Scanner (System.in);

for (int i=0; i<3; i++){

    System.out.printf(i+1+". Modelue"+" Enter grade of exam:");

    while (!input.hasNextInt() ){

        System.out.printf("Enter only numbers! Enter grade of your exam: ");
        input.next();
    }

    exam_grade[i]=input.nextInt();

    System.out.printf(i+1+". Modelue"+" Enter grade of coursework:");

    while (!input.hasNextInt()){

        System.out.printf("Enter only numbers! Enter grade of your coursework: ");
        input.next();
    }

    coursework_grade[i]=input.nextInt(); 
}


computeMark(coursework_grade, exam_grade, module_points);


// calculate module grade
for(int i = 0 ;i < 3; i++){

    if (module_points[i] < 35){
        System.out.println(i+1+".Module: Fail");
    }

    else if (module_points[i] >= 35 && module_points[i] <= 40){
        System.out.println(i+1+".Module: Pass by compensation");
        counter1++;
    }

    else {
        System.out.println(i+1+".Module: Pass");
        counter2++;
    }


}

holder = computeResult(module_points, counter1,counter2, module_grade);
System.out.println("Your stage result is: "+ holder);


input.close();
}



public static int[] computeMark (int coursework_grade[], int exam_grade[], int module_points[]){

coursework_weight[0]= 50;
coursework_weight[1]= 50;

for(int i=0;i<3;i++)
{

    if (coursework_grade[i] < 35 || exam_grade[i] < 35){

        module_points[i]=(coursework_grade[i]*coursework_weight[0] + (exam_grade[i]*(100-coursework_weight[1])))/100;

        if (module_points[i] > 35){
            module_points[i] = 35; } 

        else {
            module_points[i] = 0;
        }

    }

    else {
        module_points[i]=((coursework_grade[i]*coursework_weight[0] + (exam_grade[i]*(100-coursework_weight[1])))/100); }


}

return module_points;       
}

public static String computeResult (int module_points[], int counter1, int                 counter2,     String module_grade ){

int sum = 0;
double average = 0;

for (int i = 0; i < 3; i++){

    sum = sum + module_points[i];
    average = sum / 3;
}

for (int i = 0; i < 3; i++){


    if (counter2 == 3){
        module_grade = "Pass";
    }

    else if (average >= 40 && counter1 <= 2) {
        module_grade = "Pass by compensation";
    }

    else {
        module_grade = "Fail";
    }



}

return module_grade;






}



}

Class StudentChart

public class StudentChart {

public static void main(String[] args) {


    for (int i = 0; i < 3; i++){
        System.out.println(MarkCalculator.coursework_weight);
    }




}

}

2 个答案:

答案 0 :(得分:3)

您只需要一个main方法。

class A {
    String s;

    public A(String s){
        this.s = s;
    }
}

public class B {
    public static void main(String[] args){
        A a = new A("Hello");
        System.out.println(a.s + " world!");
    }
}

class B将是应用程序,具有main方法的应用程序。它将从class A获取值。 class A即使使用class B中的值,也无需运行class A个应用。

答案 1 :(得分:1)

您可以在另一个类中使用不同名称的方法,并使用main方法调用该方法。

不要将其称为public static void main - 这应仅用于独立程序。如果该方法需要在其之前运行其他代码,则它不应该是Java程序的主要方法。