我正在学习范围和嵌套类。我创建了一个嵌套类,并在类级创建了int money变量;但是,当我尝试在嵌套类中重新定义变量时,它会发送此错误 令牌上的语法错误" money",此令牌后预期的VariableDeclaratorId
package taopablot;
public class Scope {
private int money = 5;
class mySecondDragon {
money=5;
public void mySecondDragon()
{
System.out.println(money);
}
}
}
答案 0 :(得分:0)
class mySecondDragon {
money=5; // #2
public void mySecondDragon()
{
System.out.println(money);
}
};
看第2行。你必须隐藏顶级类的money变量,这很好,但它缺少一个类型。可能
int money =5;
如果您不想隐藏并且只想为顶级类变量赋值,那不应该这样。该语句在构造函数,方法或任何其他块中。在目前的状态下,这是一种孤立的陈述。
答案 1 :(得分:0)
如果你试图在类块中但在方法之外设置一个字段,比如你在内部类中做钱,那么你可以使用初始化块:
{ money = 5; }
但如果你想重新定义你内心阶级的田间资金,那么你需要申报它。
答案 2 :(得分:-1)
我认为您需要创建一个集合并获取资金方法。
void setMoney(int amount){
money = amount;
}
void getMoney(){
return money;
}
您的更新代码如下所示:
public class Scope {
private int money = 5;
void setMoney(int amount){
money = amount;
}
void getMoney(){
return money;
}
class mySecondDragon {
Scope.setMoney(5);
public void mySecondDragon()
{
System.out.println(Scope.getMoney());
}
}
}
答案 3 :(得分:-1)
试试这个:
public class Scope {
private int money = 0;
class mySecondDragon {
void mySecondDragon() {
money = 5;
System.out.println(money);
}
}
public static void main(String... args) {
Scope st = new Scope();
Scope.mySecondDragon fl = st.new mySecondDragon();
fl.mySecondDragon();
}
}