【问题标题】:Calling Method To Add Parameters Into An Array From A Different Class调用方法将参数添加到来自不同类的数组中
【发布时间】:2022-01-07 19:11:28
【问题描述】:

所以我正在编写这个程序,它旨在为 5 个人填写一组包含 3 种类型信息的账单。主要问题是当我运行程序时,在输入第一个人的信息后它会中断。 (请记住 addBill 是不同类中的方法)。

代码在下面。我该如何解决? 谢谢。

//代码——驱动类

public static void main(String[] args){
    Scanner input = new Scanner(System.in);
    
    // Taking Doctor's Name And Capacity.
    System.out.println("Enter the doctor's name: ");
    String doctorName = input.nextLine();
    
    System.out.println("Enter the capacity: ");
    int capacity = input.nextInt();
    
    // Creating A billBook Object.
    // billBook information = new billBook(doctorName, capacity);
    billBook[] bills = new billBook[capacity];
    
    // Asking User To Enter Patient's Information.
    for(int i = 0; i < capacity; i++){
        System.out.println();
        System.out.println("Bill " + (i+1));
        System.out.println("Enter the invoice number, patient's name, and visit date: ");
        String invoiceNumber = input.nextLine();
        String name = input.nextLine();
        input.nextLine();
        String visitDate = input.nextLine();
        input.nextLine();
        // bills[i].addBill(input.nextLine(), input.nextLine(), input.nextLine());
        bills[i].addBill(invoiceNumber, name, visitDate);
    }
}

//代码——billBook类

// Declaring Instances.
bill[] bills;
String Doctor;

// The Constructor Methods.
billBook(){}
billBook(String Doctor, int capacity){
    this.Doctor = Doctor;
    bill[] bills = new bill[capacity];
}

// The GET Methods.
public String getDoctor(){
    return Doctor;
}
public bill[] getBills(){
    return bills;
}

// The SET Methods.
public void setDoctor(String Doctor){
    this.Doctor = Doctor;
}

// The Add Bill Method.
public void addBill(String invoiceNumber, String patientName, String visitDate){
    for(int i = 0; i < bills.length; i++){
        bills[i] = new bill(invoiceNumber, patientName, visitDate);
    } 
}

// The Pay Bill Method.
public int payBill(String invoiceNumber){
    for (int i = 0; i < bills.length; i++){
        if(invoiceNumber.equals(bills[i].getInvoiceNumber())){
            bills[i].setPaid(true);
            System.out.println("Bill Is Paid.");
            return 1;
        }
        else{
            System.out.println("The Bill Is Not Found.");
        } 
    }
    return -1;
}

//代码--票据类

// Declaring instances.
private String invoiceNumber;
private String visitDate;
private String patientName;
private boolean paid;

// The Constructor Methods.
bill(){}
bill(String invoiceNumber, String visitDate, String patientName){
    this.invoiceNumber = invoiceNumber;
    this.visitDate = visitDate;
    this.patientName = patientName;
    paid = false;
}

// The GET Methods.
public String getInvoiceNumber(){
    return invoiceNumber;
}
public String getVisitDate(){
    return visitDate;
}
public String getPatientName() {
    return patientName;
}
public boolean isPaid() {
    return paid;
}

// The SET Methods.
public void setInvoiceNumber(String invoiceNumber) {
    this.invoiceNumber = invoiceNumber;
}
public void setPatientName(String patientName) {
    this.patientName = patientName;
}
public void setVisitDate(String visitDate) {
    this.visitDate = visitDate;
}
public void setPaid(boolean paid) {
    this.paid = paid;
}

// The Printing Method.
public void printInvoice(){
    if(isPaid()){
        System.out.println("Invoice Number: " + getInvoiceNumber() + 
                "\nVisit Date: " + getVisitDate() + 
                "\nPatient's Name: " + getPatientName() + 
                "\nThe bill is paid.");
    }
    else{
        System.out.println("Invoice Number: " + getInvoiceNumber() + 
                "\nVisit Date: " + getVisitDate() + 
                "\nPatient's Name: " + getPatientName() + 
                "\nThe bill is not paid.");
    }
} 

【问题讨论】:

    标签: java class


    【解决方案1】:

    您永远不会初始化 billBook[] bills 数组的成员,以及 billBook 类中的 bills 数组。

    【讨论】:

    • 我该如何解决这个问题?
    • @TareqEl-Sayyed,正如我所说,您需要初始化 billBook[] bills 数组的成员。在 for 循环中,billBook[i] = new billBook(put your arguments here)。并在billBook类的构造函数中,将bill[] bills = ...替换为this.bills = ....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 2014-10-28
    • 2016-03-02
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    相关资源
    最近更新 更多