将对象添加到对象数组,然后从数组中打印出对象

肖恩·奥罗克(Shane O'Rourke)

基本上,这是一个将患者详细信息添加或尝试添加到对象数组的程序。患者是在医院构造函数中创建的。

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

对于我的一生,我无法理解为什么它不能打印出阵列,我将不胜感激,对此我将不胜感激。谢谢。

brso05

问题是您将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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将对象添加到数组,然后在表中显示

来自分类Dev

将对象添加到对象数组

来自分类Dev

将对象添加到对象数组

来自分类Dev

将对象添加到预分配的对象数组中

来自分类Dev

将对象添加到预分配的对象数组中

来自分类Dev

使用useReducer将对象添加到数组中的数组

来自分类Dev

使用redux将对象添加到数组中的数组

来自分类Dev

Json:将对象添加到数组

来自分类Dev

将对象添加到数组

来自分类Dev

将对象添加到数组

来自分类Dev

将对象添加到数组末尾

来自分类Dev

无法将对象添加到数组

来自分类Dev

将对象添加到数组的末尾

来自分类Dev

reactJS 将对象数组添加到对象数组中的对象

来自分类Dev

将对象添加到构造函数中的数组

来自分类Dev

将对象添加到Java MongoDB中的数组

来自分类Dev

将对象的值添加到数组的每个元素中

来自分类Dev

将对象添加到打字稿中的数组

来自分类Dev

通过Java中的循环将对象添加到数组

来自分类Dev

将对象添加到构造函数中的数组

来自分类Dev

将对象从测试文件添加到类中的数组?

来自分类Dev

反应:将对象添加到数组中

来自分类Dev

将对象添加到服务中的数组

来自分类Dev

PHP - 将对象添加到子数组中

来自分类Dev

在TypeScript中将对象添加到函数中的数组

来自分类Dev

如何通过使用对象的类名,然后调用其任何方法,将对象添加到数组中?

来自分类Dev

将对象添加到对象数组Javascritp

来自分类Dev

将对象添加到数组中并更改该数组中其他对象的属性

来自分类Dev

将对象中的值添加到对象数组中,而不覆盖现有键值