2012-05-11 108 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

尝试像这样代替,移动主要方法中的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(); 
     } 

    }