#java #oop
#java #ооп
Вопрос:
Я практиковал java. И я создал метод в другом классе в том же пакете, чтобы,
class ArraysPractice2{
int n;
int[] arr = new int[n];
double averageA(int [] arr)
{
double ans = 0;
int added = 0;
int total = arr.length;
for(int i = 0; i < arr.length; i )
{
added = added arr[i];
}
ans = added / total;
return ans;
}
}
и тогда у меня есть основной метод, имеющий следующий код,
ArraysPractice2 aT = new ArraysPractice2();
int[] testArr = new int[10];
for(int i = 0; i < testArr.length; i )
{
testArr[i] = i 1;
}
aT.averageA(testArr);
Я ожидал, что aT.averageA
это даст мне среднее значение testArr
массива.
Однако это мне ничего не дает.
В чем здесь проблемы?
У меня такое чувство, что я плохо понимаю ООП..
Спасибо за вашу помощь.
Комментарии:
1. Это может дать вам это значение, но вы ничего с ним не делаете (например, печатаете его).
2. ах, я думал, что возврат должен дать мне значение ответа. Итак, если я хочу показать ответ, я должен поместить system.out.println не возвращаться! Отлично, спасибо за вашу помощь.
3. На самом деле довольно часто путают возврат с печатью на самых ранних этапах информатики. Я видел, как это происходило с довольно многими людьми, и я полагаю, что это то, что происходит с вами. Возврат, по сути, просто позволяет вычислять вызов функции как выражение, при этом его вычислением является возвращаемое значение. Он не выводит его на консоль и не делает с ним ничего другого. Например,
double avg = aT.averageA(testArr);
(надеюсь) получить среднее значение и сохранить его вdouble
вызываемомavg
.4. Да, именно это и произошло. Ах, так он сохраняет значение вместо его печати.
5. В вашем main() вы должны выполнить System.out.println(«average = » aT.averageA(testArr));
Ответ №1:
aT.averageA(testArr);
Вы не получаете / не используете значение, полученное в строке выше.
Попробуйте это:
double res = aT.averageA(testArr);
System.out.println("aT.averageA(testArr = " res);
и вы должны увидеть свое значение.