Java 为什么在创建singleton时构造函数是默认的?
为什么在这个方法中使用默认构造函数Java 为什么在创建singleton时构造函数是默认的?,java,constructor,singleton,Java,Constructor,Singleton,为什么在这个方法中使用默认构造函数 public static TicketCounterSingle getInstance() { if (instance == null) { instance = new TicketCounterSingle(); } return instance; } 这是完整的课程: public class TicketCounterSingle { private static TicketCounterSi
public static TicketCounterSingle getInstance() {
if (instance == null) {
instance = new TicketCounterSingle();
}
return instance;
}
这是完整的课程:
public class TicketCounterSingle {
private static TicketCounterSingle instance;
String Name;
int avail;
private TicketCounterSingle(String Name, int avail) {
this.avail = avail;
this.Name = Name;
}
public String getName() {
return Name;
}
public synchronized boolean bookTicket(int ticket) {
if (avail >= ticket) {
avail = avail - ticket;
return true;
} else {
return false;
}
}
public static TicketCounterSingle getInstance() {
if (instance == null) {
instance = new TicketCounterSingle();
}
return instance;
}
}
您的代码不会编译,因为没有默认构造函数
TicketCounterSingle() {}
在你们班
有一个参数化的:
private TicketCounterSingle(String Name, int avail) {
this.avail = avail;
this.Name = Name;
}
这意味着默认构造函数不会自动提供,您必须提供默认构造函数或在参数化的getInstance(String name,int avail)
方法中调用参数化构造函数:
public static TicketCounterSingle getInstance(String name, int avail) {
if (instance == null) {
instance = new TicketCounterSingle(String name, int avail);
}
return instance;
}
也许只有一个默认构造函数?请你把全班同学都给我们看看,并详细解释一下你不能理解的内容好吗?谢谢…构造函数TicketCounterSingle()是未定义的编译error@Nisha这正是我试图回答的。。。定义一个或使用一个有参数的。