当我试图编译Report.java时,我在第6行得到一个错误,说:error: <identifier> expected aClient.setClientName("Michael"); with and箭头指向第一个括号。
public class Client {
private String _clientName;
public String getClientName(){
return _clientName;
}
public void setClientName(String clientName){
_clientName = clientName;
}
}
public class Report {
Client aClient = new Client();
//ClientLawn aClientLawn = new ClientLawn();
aClient.setClientName("Michael");
//aClientLawn.setLawnWidth(10);
//aClientLawn.setLawnLength(10);
public void output(){
System.out.println(aClient.getClientName());
//System.out.println(aClientLawn.calcLawnSize());
}
}我还想说明一下,我对Java是个新手,所以请温文点。
发布于 2013-04-11 02:53:22
这一行应该放入一个初始化程序块中:
{
aClient.setClientName("Michael");
}所以它会在创建aClient之后执行。
这里的代码针对Report的每个实例运行。不幸的是,你不能给它设置参数。如果要这样做,请将此块放入构造函数中:
public Report (String clientName) {
aClient.setClientName(clientName);
//aClientLawn.setLawnWidth(10);
//aClientLawn.setLawnLength(10);
}发布于 2013-04-11 02:52:31
使用instance initialization block。
public class Report {
Client aClient = new Client();
//ClientLawn aClientLawn = new ClientLawn();
{
aClient.setClientName("Michael");
//aClientLawn.setLawnWidth(10);
//aClientLawn.setLawnLength(10);
}
...
}发布于 2013-04-11 04:04:28
正如其他人所指出的,您不能在方法之外执行代码,因此以下代码行是非法的:
Client aClient = new Client();
aClient.setClientName("Michael");它们需要包装在一个方法中,比如类的构造函数:
public class Report {
public Report() {
Client aClient = new Client();
aClient.setClientName("Michael");
}
// ....
}看起来您希望这段代码是可执行的,在这种情况下,您希望将所有这些放在一个main方法中,如下所示:
public class Report {
public static void main(String... args) {
Client aClient = new Client();
aClient.setClientName("Michael");
System.out.println(aClient.getName());
}
}然后,您可以编译并执行Report类。
https://stackoverflow.com/questions/15934012
复制相似问题