Ошибка в доступе к открытому методу закрытой переменной

127
31 мая 2019, 03:00

Повторяю в точности код из книги Шилдта

class MyClass { // Сравнение видов доступа public и private
private int alpha; // закрытый доступ
public int beta; // открытый доступ
int gamma; // .тип доступа по умолчанию (по сути, public)
/* Методы доступа к переменной alpha. Члены класса могут
обращаться к закрытым членам того же класса.
*/
void setAlpha(int а) { // открытый метод setAlpha
    alpha = а;
}
int getAlpha() {  // открытый метод getAlpha
    return alpha;
}

}

class AccessDemo {
public static void main(String args[]) {
    MyClass оb = new MyClass();
    /* Доступ к переменной alpha возможен только с помощью
    специально предназначенных для этой цели методов. */
    ob.setAlpha(-99);
    System.out.println("ob.alpha: " + ob.getAlpha());
    // Обратиться к переменной alpha так, как показано ниже, нельзя
    // ob.alpha = 10; // Ошибка: alpha - закрытая переменная!
    // Следующие обращения вполне допустимы, так как
    // переменные beta и gamma являются открытыми
    оb.beta = 88;
    ob.gamma = 99;
    System.out.println("ob.gamma: " + ob.beta);
}

}

  • получаю ошибки:

Error (26, 9) java: cannot find symbol. symbol: variable ob. location: class AccessDemo

Error (27, 43) java: cannot find symbol. symbol: variable ob. location: class AccessDemo

Error (33, 9) java: cannot find symbol. symbol: variable ob. location: class AccessDemo

Error (34, 43) java: cannot find symbol. symbol: variable ob. location: class AccessDemo

Какой символ он не может найти? Если добавить/объявить переменную ob как подсказывает intellij idea - будет ошибка на методе ob.setAlpha(-99);

Прошу подсказать чего не хватает в коде для работоспособности.

Answer 1

Проблема в строке MyClass оb = new MyClass();, 'ob' в неверной кодировке. переименуйте из в верной кодировке и на английском. А так же в строке оb.beta = 88; тоже переименуйте переменную 'ob'.

Answer 2

int gamma; // .тип доступа по умолчанию (по сути, public)

нет не public, по умолчанию package

код рабочий, просто у вас что-то с переменной ob попробуйте ее скопировать от туда, где объявляете и вставить ее во всех остальных случаях

просто даже если символы похожи, то у них может быть разная кодировка сравните ob написано по английски и ob первая буква в русской раскладке

READ ALSO
JAVA - как собирается .jar?

JAVA - как собирается .jar?

Подскажите "обывателю" пожалуйста какой мой ход действий

131
Cannot convert value of type 'java.lang.String'

Cannot convert value of type 'java.lang.String'

Читаю Spring in action 5, пытаюсь реализовать примерыНа одном из контроллеров выходит ошибка:

140
unexpected token, identifier expected

unexpected token, identifier expected

Что я пропустил в коде?

113
Получить значение из DatePicker

Получить значение из DatePicker

Используется JavaFx для создания интерфейсаВ окне есть элемент DatePicker

113