私は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
このエラーが表示される理由を見つけようとしています。
これらの行を入れます
Clmm klm;
klm = new Clmm();
下
public static void main など
public static void main(String [] args)
{
Clmm klm;
klm = new Clmm();
}
クラス定義のメソッドまたはコンストラクターの外部にステートメントを配置することはできません。
klm = new Clmm();
のよう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
}
メソッドの減速中に、メソッドの外部で変数を初期化できます。それが理由です
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