我是新來的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