Задать вопрос
@MishaXXL

Почему public и static класса дают одинаковый доступ?

Как я понял из теории по Java
public - свойства и методы, которые могут быть вызваны экземпляром класса
static - свойства и методы, которые могут быть вызваны непосредственно классом
public static - методы могут быть вызваны, как экземпляром, так и самим классом
а значение свойств становятся общими для всех экземпляров класса и привязаны к свойству класса

Почему в данном случае я могу обратиться к статическому свойству через экземпляр?
Мне казалось здесь должно быть public int num; илиpublic static int num; , чтобы этот код работал корректно
Просто зачем тогда public static, если просто staticотработает по такой же логике

public class MyClass {
    public static void main(String args[]) {
      Java java = new Java(5);

      System.out.println(java.num);
    }
}

class Java {
    
    static int num;
    
    Java(int i) {
        num = i;
    }
}
  • Вопрос задан
  • 3028 просмотров
Подписаться 2 3 комментария
Подписчики вопроса 2 К ответам на вопрос (0)