public class Solution {
public static int step;
public static void main(String[] args) {
method1();
}
public static void method1() {
method2();
}
public static void method2() {
new Solution().method3();
}
public void method3() {
method4();
}
public void method4() {
Николай
16 уровень
Объясните, как тут работает Solution() и почему в методе 3 и 4 не нужно ставить "static"
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Не ну это не серьезноExpert
3 мая 2020, 19:48
К нестатик методам, что бы обратиться - нужно создать объект.
Вот эта строка делится на две части, так сказать. До = и после. До - это просто объявление переменной, с именем sol типа Solution. Типа int b, тоже самое. А вот вторая часть - new Solution() - это уже создание объекта. И по средством знаком = этот объект кладут в переменную sol. То, что написано в примере, ничто иное как:
new Solution().method3();
создание объекта и сразу вызов у него метода.. повторно, само собой, к нему обратиться нельзя, т.к. его не присвоили никакой ссылке и достать с кучи именно его - не получится. Но что бы вызвать 1 раз какой-то метод - вполне возможно. Это тоже самое, что
+2
Владислав Backend Developer
3 мая 2020, 17:58
От статика к статику можно обратиться просто по имени метода. От обычного, не статика, к НЕ статику - также, просто по имени метода. А вот от не статика к статику всегда можно обращаться только по ИмяКласса.имяМетода. Или в чем вопрос еще? Можно код?
0
Не ну это не серьезноExpert
3 мая 2020, 19:45
От нестатика к статику можно без проблем обращаться и по объекту классу, если это объект этого класса. А вот со статики к обычному - вот тут уже проблемы, и они вполне логичны и понятны.
0