public class Solution {
public static int A = 5;
public static int B = 2;
public int C = A * B; //Почему здесь не статическая переменная???
public static int D = B * A;//В тоже самое время здесь нормально статическая?
//ведь обе они внутри класса!!!
public static void main(String[] args) {
}
public int getValue() {
return D;
}
public int getValue2() {
return C;
}
}
Руслан
16 уровень
Почему Так Подскажите!
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia MarioMaster
3 мая 2020, 17:42
да хз. там можно убрать все статики, кроме мейна, и будет компилится
0
Руслан System Administrator в court Expert
3 мая 2020, 18:39
Так вот и поставить можно где переменные в классе, но почему так сделали суть не улавливаю!
0
Ksenia MarioMaster
3 мая 2020, 20:41полезный
если не знаешь язык, закинь в переводчик или загугли тему.
Встановити статичну чи не статичну залежить від завдання. Зазвичай, краще все що можна зробити не статичним - має бути не статичним.
"ведь обе они внутри класса!!!"
в джаві у тебе УСЕ знаходиться в якомусь класі. В тебе не може нічого існувати поза класом. Якщо ти пишеш статік - це означає що для усіх екземплярів цього класу змінна одна.
Наприклад,
Тут name - для кожно буде своє.
paws - кількість лап - 4 - стала, щоб не записувати щоразу, коли створюєш кота, ми її поставимо однією (однаковою) для усіх котиків.
count - кількість котів - сюди ми будем записувати скільки котів створили. ЇЇ не логічно записувати якомусь конкретному коту, вона загальна для усіх. Коли буде створено нового кота - ми збільшим каунт.(записано в конструкторі).
------------------------------------
В цій задачі можна уявити що статік - це форма для печива, а кожен новий об'єкт - це печиво.
Усі статік поля - це частинки форми і тобі їх потрібно підготувати до того, як ти створюватимеш першу печеньку.
Статичні поля - це те, що має бути підготовлено до створення об'єкту.
+1