Я смущаю себя здесь. Моя цель состояла в том, чтобы создать простую программу, которая приняла количество значений, которые пользователь хочет усреднить, сохранить их в массиве (при их объединении) и, наконец, дать среднее значение этих чисел.Как передать эти целые числа методу под ним?
Моя вещь: я пытаюсь понять концепцию нескольких классов и методов, поскольку я новичок, поэтому я попытался использовать другой класс, просто выполняю всю работу, в то время как основной класс просто создал объект из другого класса , а затем запустить их методы. Возможно, я спрашиваю что-то невозможное. Взгляните на мой код.
Это мой Основной класс:
public class Main
{
public static void main(String[] args)
{
System.out.println("Please enter numbers to average together");
OtherClass averages = new OtherClass();
averages.collectNumbers();
averages.AverageNumbers();
}
}
Теперь я не уверен, что если что-то в этих параметрах, или если я могу даже использовать «averages.AverageNumbers();» не создавая другого объекта с помощью «OtherClass», называемого чем-то другим? Я уверен, что это законно.
Вот мой другой класс для этого проекта под названием «OtherClass»
import java.util.Scanner;
public class OtherClass // using this to name obj
{
public void collectNumbers() //name of our method that does things
{
Scanner sc = new Scanner(System.in);
System.out.println("how many integers would you like to average? ");
int givenNum = sc.nextInt();
System.out.println("Alright, I will average " + givenNum + " values. \nPress enter after each:");
int[] numCollect = new int[givenNum];
int sum = 0;
for (int i = 0; i < numCollect.length; i++)
{
numCollect[i] = sc.nextInt();
sum = sum + numCollect[i];
}
System.out.println(sum);
}
public int AverageNumbers(int givenNum, int sum)
{
int average = sum/givenNum;
System.out.println(average);
return average;
}
}
Так что, когда я запускаю это теперь с методом AverageNumbers, он не работает. Я подозреваю, что, возможно, я ошибаюсь в целых числах? Я занимаюсь этим около часа, поэтому я прошу помощи. Как это сделать?
Большое вам спасибо! Это сработало.Теперь я понимаю, что обе эти переменные принадлежат к моему классу OtherClass. Можете ли вы объяснить мне, что мои переменные должны быть частными сейчас? – jpX
Ну, они НЕ должны быть «частными», но это хорошая практика, чтобы создать поле или метод 'private', если он не будет использоваться вне класса, где он объявлен. Есть много причин для этого, но одна из веских причин заключается в том, что если вы столкнулись с проблемой, когда одна из этих переменных не имеет того значения, которое вы ожидаете от нее, вам нужно только посмотреть в ОДНОМ классе для своего проблема, а не вся программа. –
Понял. Это может быть слишком много, чтобы спросить вас, но как бы вы сделали эту программу? Очевидно, как кто-то более опытный, чем я, вы знаете намного больше. Я знаю, что это простая программа усреднения, но мне любопытно узнать. (Может быть, просто объяснение, не ожидая, что вы закодируете мне целую программу :)). Спасибо за помощь! – jpX