2013-11-13 6 views
0

Я знаю, это может быть странный вопрос, но я действительно застрял. У меня простая программа с двумя классами. Мне нужно передать массив из класса A в класс B. Я сделал это, но я не могу проверить его, потому что я понятия не имею, как запускать программу. Когда я нажимаю на пробег, запускается только один класс. Я хотел протестировать всю программу и не могу найти ничего, как это сделать. Есть ли какая-либо команда или что-то, что говорит run class A, а затем класс B? Без него я не могу тестировать класс B, потому что значения из Array (класс A) не загружаются:/Надеюсь, вы понимаете, что я имею в виду.Как запустить один Java-класс, а затем еще один класс Java в Eclipse?

Я использую затмение.

Спасибо!

Класс 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; 






} 



} 

Класс StudentChart

public class StudentChart { 

public static void main(String[] args) { 


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




} 

} 
+5

Пожалуйста, разместите свой код ... – Melquiades

+0

Создал ли вы основной метод для использования в качестве драйвера для тестирования обоих методов? –

+0

Один из ваших классов в проекте должен иметь «главный» метод, а затем вы нажимаете кнопку зеленого хода (зеленый круг с белой стрелкой «стрелка») или в меню выберите «Выполнить» - «Выполнить» или «Выполнить» - «Отладка» , –

ответ

1

У вас может быть метод с другим именем в другом классе и вызывать этот метод из вашего метода main.

Не называть его public static void main, хотя это можно использовать только для автономных программ. Если для этого метода требуется какой-то другой код, который должен быть запущен до него, он не должен быть основным методом Java-программы.

+0

Спасибо, это работает! : D – user2956231

+0

@ user2956231 отлично, вы можете пометить этот ответ как принятый, нажав галочку/галочку рядом с ним. –

+0

Я сделал ... еще раз спасибо – user2956231

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.

Смежные вопросы