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

Почему не видны public методы и переменные в одном пакете?

Работаю в IntelliJ Idea.

Имеем класс Human отдельным файлом.
public class Human {
    public int age = 0;
    public String name = "Nobody";
    protected int height = 1;
    protected int strength = 1;

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public int getHeight() {
        return height;
    }

    public int getStrength() {
        return strength;
    }

В этом же пакете другой класс Life тоже отдельным файлом:
public class Life {
    Human petrovich = new Human();
    petrovich. // тут по ctrl+space мы узнаём, что нет доступа к методам и атрибутам Human
}


Почему у экземпляра класса Human petrovich нет доступа к методам и атрибутам класса родителя Human?
  • Вопрос задан
  • 362 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@KeLaTy
C++ Developer
Вы в классе Life не создали процедуру:
public class Life {
    Human a = new Human();
    public void test(){
        a.getAge();
    }
}


И все работает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@docker1
Пожалуйста, убери public и protected-поля. Все поля должны быть private. У их сеттеров и геттеров делай области видимости, какие нужно. А в остальном тебе уже ответили.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы