这是我的代码:
required
第subscriptionTier1
行为什么会出错?
答案 0 :(得分:2)
如果您想为变量x赋值, 该行初始化后,应将其放置在下面的特定方法中。 您打算这样做吗?
public class MyClass
{
int x;
public static void main(String[] args)
{
MyClass m1 = new MyClass();
m1.x = 10;
}
}
答案 1 :(得分:0)
您的代码中有两个错误:
MyClass m1 = new MyClass();
这是无限递归。
m1.x=10;
这是一条语句,因此应该在方法或构造函数中,而不是类主体中。
答案 2 :(得分:0)
这里的问题是代码m1.x=10;
此行显示的操作或行为仅在代码的块内是允许的。
此操作的有效代码。
public class MyClass {
int x;
public void assignOperation() {
this.x = 10;
}
public static void main( String[] args ) {
MyClass myClass = new MyClass();
myClass.assignOperation();
System.out.println( "Assigned value is " + this.x )
}
}
方法之外但在类体内的另一个有效示例是:
public class MyClass {
static int x;
static {
x = 10;
}
public static void main( String[] args ) {
System.out.println( "Assigned value is " + x )
}
}
使变量 x 为静态不需要我们初始化类 MyClass 的对象。
答案 3 :(得分:0)
使用实例初始化块:
public class MyClass {
int x; // define x variable
MyClass m1 = new MyClass(); // initialize m1 variable
{
m1.x=10; // assign 10 to m1.x (this is assignment statement)
}
}
首先,您只能定义和初始化变量,而不能执行赋值语句。