我是新来的Java和书面简单的代码:无法找到语法错误的原因
1 package Rndom;
2 class Clmm{
3
4 }
5 public class Clkk {
6
7 Clmm klm;
8 klm = new Clmm();
9
10 }
Eclipse中显示了错误:
syntax error on token ";" , , expected on line 7
我试图找出为什么显示此错误。
我是新来的Java和书面简单的代码:无法找到语法错误的原因
1 package Rndom;
2 class Clmm{
3
4 }
5 public class Clkk {
6
7 Clmm klm;
8 klm = new Clmm();
9
10 }
Eclipse中显示了错误:
syntax error on token ";" , , expected on line 7
我试图找出为什么显示此错误。
可以初始化变量的方法以外,在它的减速。这就是为什么
private Clmm klm = new Clmm(); //deceleration and initialization
为你工作。 但是,一旦它被声明(并初始化,即使它是默认值),你也只能在方法或块内改变它的值。这就是为什么下面的代码不适合你:
Clmm klm; // deceleration and initialization to default value
klm = new Clmm(); //assignment, which is a statement that cannot be outside of a block/method
让它Clmm klm = new Clmm();
像
public class Clkk {
private Clmm klm = new Clmm();
// getter setter for klm
}
或者在类似的构造器klm
:
public class Clkk {
private Clmm klm;
public Clkk() {
klm = new Clmm();
}
// getter setter for klm
}
或者你可以有块作为
public class Clkk {
private Clmm klm;
{ // this is called block and this is equivalent to constructor. But you can not pass arguments to block. Prefer constructors.
klm = new Clmm();
}
// getter setter for klm
}
感谢您的输入,但如果我修改下面的代码,它不显示任何错误。 package Rndom; 类Clmm { } 公共类Clkk { \t \t KLM Clmm =新Clmm(); }只是想知道为什么.... ??? – Som 2012-07-29 16:10:01
你觉得呢? – 2012-07-29 16:14:15
不知道为什么错误不显示在后面的情况。我只是改变了Clmm klm; klm = new Clmm(); .............. to .... Clmm klm = new Clmm(); ...请你解释一下为什么现在没有显示错误的原因。 – Som 2012-07-29 16:26:20
将这些行
Clmm klm;
klm = new Clmm();
under
public static void main例如,
public static void main(String [] args)
{
Clmm klm;
klm = new Clmm();
}
或把它们放在构造函数中。 – 2012-07-29 15:54:02
也rahul没有提到,“Clkk”是主类。 – 2012-07-29 16:04:40
谢谢马特,那正是我所期待的。非常感谢 。 – Som 2012-07-29 16:42:46