java代码显示错误。 (';',预期)

时间:2011-02-01 10:00:01

标签: java

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();
  }
}

4 个答案:

答案 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;

不在方法体内提及。你不能这样做。将其移动到构造函数或其他方法。

在类体和外部方法体内,您只能提及字段,方法和内部类声明。