Вызов другого класса в Java
Хорошо, я хочу создать 2 класса. Один из них является основным классом, а второй - создать сторожевой элемент управления цикла, а затем возвращать его общее количество, пока пользователь не введет 0. Я не смог заставить его работать. Я не знаю, как вызвать другой класс, потому что я очень плохо знаком с Java. Вот что у меня есть.
Класс 1:
import java.util.*;
public class HW3 {
public static void main(String[] args) {
OrderDetails object = new OrderDetails();
int n;
n = object.OrderDetails(0);
System.out.println(n);
Класс 2:
import java.util.*;
public class OrderDetails {
Scanner input = new Scanner(System.in);
int total=0;
int n1;
public int OrderDetails(int n1){
while (n1 != 0){
System.out.println("Enter your number");
n1 = input.nextInt();
total += n1;
} // End while loop
return total;
} // End method
2 ответа
Прежде всего
public int OrderDetails(int n1)
Вы используете имя класса в качестве имени метода, оно будет работать и работать, но некоторые IDE будут жаловаться на это, что вы используете имя класса в качестве метода, который вам нужно изменить в качестве конструктора.
object.OrderDetails(0);
Теперь проблема заключается в том, что вы передаете 0, который нарушает оператор while, вместо этого передаете другое значение, скажем, -1, так что вы попадете внутрь цикла while и получите некоторые значения от пользователя.
образец:
object.OrderDetails(-1); //change the name of your method
N1 в области видимости класса является переменной экземпляра, но параметр n1 в методе является локальной областью видимости и поэтому скрывает переменную экземпляра. Кроме того, метод назван так же, как класс, что является плохой практикой.
Ничего из этого не является проблемой - реальная проблема заключается в том, что вызывающая сторона вызывает с одним значением, которое не позволит ему войти в цикл while. Если вы звонили с чем-то отличным от нуля, вы увидите, что это даст желаемый результат.