Java 错误:<;标识符>;预期
当我试图编译Report.java时,我在第6行遇到一个错误:Java 错误:<;标识符>;预期,java,Java,当我试图编译Report.java时,我在第6行遇到一个错误:error:expected aClient.setClientName(“Michael”)和箭头指向第一个括号 public class Client { private String _clientName; public String getClientName(){ return _clientName; } public void setClientName(String
error:expected aClient.setClientName(“Michael”)代码>和箭头指向第一个括号
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新手,所以请温和一点。使用实例初始化块
public class Report {
Client aClient = new Client();
//ClientLawn aClientLawn = new ClientLawn();
{
aClient.setClientName("Michael");
//aClientLawn.setLawnWidth(10);
//aClientLawn.setLawnLength(10);
}
...
}
此行应放入初始值设定项块中:
{
aClient.setClientName("Michael");
}
因此,它在创建aClient
之后执行
这里的代码针对报告的每个实例运行。不幸的是,您无法为其设置参数。如果要执行此操作,请将此块放入构造函数:
public Report (String clientName) {
aClient.setClientName(clientName);
//aClientLawn.setLawnWidth(10);
//aClientLawn.setLawnLength(10);
}
public class Report {
public Report() {
Client aClient = new Client();
aClient.setClientName("Michael");
}
// ....
}
正如其他人所指出的,您不能在方法之外执行代码,因此以下行是非法的:
Client aClient = new Client();
aClient.setClientName("Michael");
它们需要包装在方法中,例如类的构造函数:
public Report (String clientName) {
aClient.setClientName(clientName);
//aClientLawn.setLawnWidth(10);
//aClientLawn.setLawnLength(10);
}
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());
}
}
然后,您可以编译并执行报告
类。在此上下文中,它们被称为初始值设定项块
。匿名块用于限制方法中变量的范围。