内部类Java中的Modify变量
我无法解决Java内部类的问题。假设你有内部类Java中的Modify变量,java,variables,inner-classes,Java,Variables,Inner Classes,我无法解决Java内部类的问题。假设你有 class Outer { int outer = 0; class Inner { int inner = Outer.this.outer; //(or just outer as it is not shadowed) inner = 3; //or whatever, even outer = 3 } } 嗯,当我写最后一个作业时,我得到了编译错误 Syntax e
class Outer
{
int outer = 0;
class Inner
{
int inner = Outer.this.outer; //(or just outer as it is not shadowed)
inner = 3; //or whatever, even outer = 3
}
}
嗯,当我写最后一个作业时,我得到了编译错误
Syntax error on token ";", , expected
根据先例
为什么我不能修改内部
谢谢大家! 您对
内部的赋值必须在方法或构造函数中,而不是类中的“松散”赋值。您必须将代码放置在方法或构造函数中:
class Outer
{
int outer = 0;
class Inner
{
int inner = Outer.this.outer;
public Inner() {
inner = 3;
}
public increment() {
inner++;
}
}
}
class Outer
{
int outer = 0;
class Inner
{
int inner = Outer.this.outer; //(or just outer as it is not shadowed)
Inner() {
inner = 3; //or whatever, even outer = 3
}
}
}
不能在方法之外有语句。一种技术是使用实例初始值设定项块:
或者,定义一个构造函数:
class Outer
{
int outer = 0;
class Inner
{
int inner = Outer.this.outer;
public Inner() {
inner = 3;
}
public increment() {
inner++;
}
}
}
class Outer
{
int outer = 0;
class Inner
{
int inner = Outer.this.outer; //(or just outer as it is not shadowed)
Inner() {
inner = 3; //or whatever, even outer = 3
}
}
}
您需要包括以下行:
inner=3;
在内部类的方法中 Yuo不能直接初始化internal=3代码>外部方法。确保内部=3代码>在任何方法或构造函数中
public Inner()
{
inner = 3;
}