class B {
int x,y;
int z;
z=x*y;
void show() {
System.out.println(z);
}
}
class A {
public static void main(String as[]) {
B b=new B();
b.show();
}
}
答案 0 :(得分:14)
您不能在班级主体(z=x*y;
)中拥有语句。你有(至少)两个选择:
int z = x * y;
使用初始化程序块
{
z = x * y;
}
这几乎是一样的。我更喜欢第一个选项(清洁工)See here
答案 1 :(得分:3)
z=x*y;
你不能在这里做。把它放在构造函数
class B {
int x,y;
int z;
//z=x*y; //you cant do it here. where are you getting x and y value by the way???
public B()
{
//x and y values should be set 'somehow' before this
z = x*y;
}
void show() {
System.out.println(z);
}
}
答案 2 :(得分:0)
我认为你的问题在于以下几点:
int z;
z=x*y;
第一行非常好 - 它声明了一个名为z
的类int
的类实例变量。但是,第二行是问题的根源。在Java中,在类方法或静态初始化程序之外的类中包含代码是非法的。在这种情况下,语句z = x * y;
是合法的Java代码,但它必须在方法内。
要解决此问题,您可以将此代码移动到构造函数或其他方法中。
答案 3 :(得分:0)
z=x*y;
不在方法体内提及。你不能这样做。将其移动到构造函数或其他方法。
在类体和外部方法体内,您只能提及字段,方法和内部类声明。