2012-05-11 11 views
20

ここで問題がありますか?Java:識別子が必要です

class UserInput { 
    public void name() { 
    System.out.println("This is a test."); 
    } 
} 

public class MyClass { 
    UserInput input = new UserInput(); 
    input.name(); 
} 

これは文句:

<identifier> expected 
    input.name(); 
+0

ですコンストラクタがありませんか? – ChristopheD

+3

'input.name();'を置くことはできません。必要なときは、メソッドの中になければなりません。 –

答えて

23

コードをメソッドに挿入します。

これを試してみてください:

その後
public class MyClass { 
    public static void main(String[] args) { 
     UserInput input = new UserInput(); 
     input.name(); 
    } 
} 

"実行" クラスを自分のIDEから

6

あなたは法の外のメソッドを呼び出すことはできません。このようなコードは、クラス内で浮遊することはできません。

次のようなものが必要です

public class MyClass { 

    UserInput input = new UserInput(); 

    public void foo() { 
     input.name(); 
    } 
} 

またはコンストラクタ内部を:

public class MyClass { 

    UserInput input = new UserInput(); 

    public MyClass() { 
     input.name(); 
    } 
} 
4

input.name()は、関数内である必要があります。クラスには宣言が含まれており、ランダムなコードは含まれていません。

5

は、代わりにこのようにそれを試してみてくださいmainメソッド内で、あなたのMyClassのアイテムを移動する:あなたは

class UserInput { 
     public void name() { 
     System.out.println("This is a test."); 
     } 
    } 

    public class MyClass { 

     public static void main(String args[]) 
     { 
      UserInput input = new UserInput(); 
      input.name(); 
     } 

    } 
関連する問題