基本上,这是一个将患者详细信息添加或尝试添加到对象数组的程序。患者是在医院构造函数中创建的。
import java.util.*;
public class Hospital {
public static String firstName;
public static String lastName;
public static int patientID = 1;
public static int phoneNum;
private static int i = 0;
private static Hospital[] hosArray = new Hospital[100];
public Hospital(){
firstName = "";
lastName = "";
patientID = 0;
phoneNum = 0;
}
public Hospital (String fName, String lName, int pID, int pNum){
firstName = fName;
lastName = lName;
patientID = patientID++;
phoneNum = pNum;
}
public static void scanner(){
提示用户添加诸如名字,姓氏,电话号码之类的东西。
Scanner user = new Scanner(System.in);
System.out.print("Enter 1 to add patient: ");
int input = user.nextInt();
if (input == 1){
System.out.print("Enter first name: ");
String fName = user.next();
System.out.print("Enter last name: ");
String lName = user.next();
System.out.print("Enter phone number: ");
int pNum = user.nextInt();
在这里,我尝试将每个新对象添加到数组中,并且似乎可以正常工作。当我将一名患者添加到阵列时,它会打印出该患者。但是,当我尝试向阵列中添加一个以上的患者时,我输入的最后一个患者的打印次数将与我尝试输入的患者数量相同。:?
if(hosArray[i] == null){
hosArray[i] = new Hospital();
hosArray[i] = new Hospital(fName, lName, Hospital.patientID, pNum);
i++;
}
scanner();
}
}
public int getpID(){
return patientID;
}
public static void main(String[] args) {
scanner();
for (int j = 0; j < hosArray.length; j++){
if (hosArray[j] != null )
{
System.out.println(hosArray[j].firstName);
}
}
}
}
这是我程序的输出。
Enter 1 to add patient: 1
Enter first name: joe
Enter last name: bloggs
Enter phone number: 1234
Enter 1 to add patient: 1
Enter first name: john
Enter last name: doe
Enter phone number: 4321
Enter 1 to add patient: 0
john
john
对于我的一生,我无法理解为什么它不能打印出阵列,我将不胜感激,对此我将不胜感激。谢谢。
问题是您将firstName和lastName PatientID和phoneNumber定义为静态变量。每次添加新对象时,都在设置这些变量,但是该类的所有其他对象共享这些变量,因为它们是静态的。因为所有类别的所有对象都共享静态变量,所以只有您输入的最后一位患者会出现在所有打印输出中。
我修复了您的代码,使其可以执行您想要的操作,但是代码仍然存在问题。对于所有患者,其id = 1。
public class Hospital {
public String firstName;
public String lastName;
public static int patientID = 1;
public int phoneNum;
private static int i = 0;
private static Hospital[] hosArray = new Hospital[100];
public Hospital() {
firstName = "";
lastName = "";
patientID = 0;
phoneNum = 0;
}
public Hospital(String fName, String lName, int pID, int pNum) {
firstName = fName;
lastName = lName;
patientID = patientID++;
phoneNum = pNum;
}
public static void scanner() {
Scanner user = new Scanner(System.in);
System.out.print("Enter 1 to add patient: ");
int input = user.nextInt();
if (input == 1) {
System.out.print("Enter first name: ");
String fName = user.next();
System.out.print("Enter last name: ");
String lName = user.next();
System.out.print("Enter phone number: ");
int pNum = user.nextInt();
if (hosArray[i] == null) {
hosArray[i] = new Hospital();
hosArray[i] = new Hospital(fName, lName, Hospital.patientID,
pNum);
i++;
}
scanner();
}
}
public int getpID() {
return patientID;
}
public static void main(String[] args) {
scanner();
for (int j = 0; j < hosArray.length; j++) {
if (hosArray[j] != null) {
System.out.println(hosArray[j].firstName);
}
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句