В соответствии с инструкцией this в документации Java доступ к открытым членам можно получить на уровнях Class, Package, Sublcass и World. Но скажу, что я создаю два класса:Java: модификатор доступа Confusion
public class TesterClass
{
public int someNumber = 5;
}
public class AnotherClass
{
public static void main(String [] args)
{
System.out.println(someNumber);
}
}
и сохраните их в том же месте. Когда AnotherClass
скомпилирован, возникает ошибка, указывающая, что переменная someNumber
не может быть распознана. Почему же тогда в документах Java указано, что модификаторы общедоступного доступа разрешают доступ во всем мире? Я понимаю, что я делаю что-то не так, но что происходит точно?
Что делать, если у меня есть еще один класс с полем 'someNumber'. К какому 'someNumber' следует' someNumber'? Знаете ли вы, какие поля экземпляров? Знаете ли вы, какие поля классов? Знаете ли вы, какой объем? (Это все ключевые слова для поиска.) –
Да, я знаком с полями (переменными) и областью видимости, я просто не понял, что я делаю неправильно (не создавая экземпляры и не пытаюсь получить доступ к переменным через точечную нотацию) , Я вижу сейчас. Спасибо! Кроме того, спасибо @RamanSB, ваши примеры помогли. – AleksandrH
@AleksandrH, таблица в официальном учебнике не очень педагогическая имо. Посмотрите на [эту таблицу] (http://stackoverflow.com/a/33627846/276052). Несмотря на то, что он не касается вашего точного вопроса, он немного разъясняет области. – aioobe