Я написал очень маленький класс [который должен расти!], Но я вдруг вижу что-то «странное».Доступные частные переменные
Это класс:
class Chara{
private boolean flag_loaded;
private boolean flag_rage, flag_shield;
private int int_rage, int_shield;
Chara(String fileName){
flag_loaded = true
if(flag_loaded){
flag_rage = false;
int_rage = 0;
flag_shield = false;
int_shield = 0;
}
}
boolean rage(){return flag_rage;}
boolean shield(){return flag_shield;}
void add_rage(int toAdd){flag_rage = Bool(int_rage += limitMin(toAdd, 0));}
void add_shield(int toAdd){flag_shield = Bool(int_shield += limitMin(toAdd, 0));}
void sub_rage(int toAdd){flag_rage = Bool(int_rage -= limitMin(toAdd, 0));}
void sub_shield(int toAdd){flag_shield = Bool(int_shield -= limitMin(toAdd, 0));}
Как вы можете видеть все переменные устанавливаются как private
.
ПРИМЕЧАНИЕ: limitMin()
возвращает переменную того же типа, в этом случае 0
, если toAdd
ниже. Bool() - просто актерский состав.
Это часть основной:
Chara chara = new Chara("lol");
print(chara.int_shield, (chara.shield()) ? COL_GREEN : COL_RED);
print(chara.flag_shield, (chara.shield()) ? COL_GREEN : COL_RED);
Ничего не делается между декларации, например, и печати.
Этот фрагмент кода должен напечатать в зеленый цвет значение щита, и если есть или нет щита, но он не должен ничего из-за int_shield
и flag_shield
, которые, как предполагается, будет private
печати.
Результат хороший 0
и красный хороший false
...
Почему это происходит? Я делаю что-то не так?
В отчаянии я попытался сделать переменные protected
, но, как я и ожидал, ничего не произошло.
EDIT: добавлен весь класс Chara.
Какая строка 'Chara();' в вашем коде должна делать? –
Установка всех в 0 [для 'int'] и false [для 'boolean's] – ingroxd
Почему? Это то, что происходит по умолчанию. Как это даже синтаксически справедливо ...? –