这是我的代码。 在我的main函数中,我已经包含了一个构造函数。 我的客户端类中有多个构造函数
public class Client {
private String name = "", username = "", ClientID = "", password = "";
Client[] account = new Client[100];
public Client() {
}
public Client(String name, String username) {
// will have generated function for ClientID and also Password
account[clientCount] = new Client();
account[clientCount].setName(name);
account[clientCount].setUsername(username);
account[clientCount].setPassword(password);
account[clientCount].setClientID(CID);
}
public Client(String name, String username, String password, String ClientID) {
this.name = name;
this.username = username;
this.password = password;
this.ClientID = ClientID;
}
public static void main(String[] args) {
if (selection == 1) {
Client client = new Client(); // object created called "client"
name = JOptionPane.showInputDialog("Account Status: Admin\n" + "Please Enter Client Name: ");
username = JOptionPane.showInputDialog("Account Status: Admin\n" + "Please Enter Client Userame: ");
Client CLIENT = new Client(name, username);
JOptionPane.showMessageDialog(null,
CLIENT.account[Client.clientCount].getName() + "\n" + CLIENT.account[Client.clientCount].getUsername() + "\n"
+ CLIENT.account[Client.clientCount].getPassword() + "\n" + CLIENT.account[Client.clientCount].getClientID());
}
if (selection == 2) {
// at here, unable to access to CLIENT object, what can I do access
// CLIENT object to here. Or copy the same object into the other new
// object
for (int i = 0; i <= Client.clientCount; i++) {
System.out.println(CLIENT.account[i].getName());
}
}
}
}
答案 0 :(得分:3)
只需将Client CLIENT = null;
放在if-blocks之前,然后在if中使用CLIENT = new Client(name,username);
。然后,您可以在if之外使用CLIENT,但如果第一个if中的代码未执行,则它将为null
。
实际上你的程序有一个设计错误,因为CLIENT
在第二个中总是null
,因为永远不会出现第一个和第二个if块在彼此之后执行的情况; - )所以你应该重新考虑你的问题。