簡體   English   中英

在Java中創建類的實例時遇到問題

[英]Trouble creating an instance of a class in java

我正在努力使此代碼正常工作。 這是我的代碼。 頭等艙:

public   class  PersonalAccount extends Account{
    private String cardNumber; 
    private String cardType; 

    public ArrayList<PersonalAccount> personalAccounts;
    public int personal;

   private PersonalAccount(String first, String last, String accountNumber, String cardNumber, String cardType){
        super(first, last, accountNumber);
        this.cardNumber = "";
        this.cardType = "";
    }


    public void addPersonalAccount(PersonalAccount aPersonalAccount){
        personalAccounts.add(aPersonalAccount);
    }

    public void getNumberOfPersonalAccounts(){
       personal = personalAccounts.size();

    }

    public void listAccounts(){
        for (PersonalAccount personalaccount : personalAccounts){
            System.out.println("Personal Accounts");
            System.out.println(personalaccount);
        }
    }

    public void findAccount(){
       int index = 0;
       boolean found = false;
       while(index < personalAccounts.size() && !found){
           PersonalAccount personalaccount = personalAccounts.get(index);
           if (personalaccount.getaccountNumber().equals(accountNumber)){
               found = true;
            }else{
                index++;
            }
        }
    }
}

嘗試在另一個類中創建此類的實例時,它會創建PersonalAccount對象的實例。 有沒有解決這個問題的方法? 我對Java和BlueJ非常陌生,應該注意。

編輯:對不起,我應該澄清。 我試圖在另一個類中調用此類的方法。 但是當宣布

PersonalAccount class1 = new PersonalAccount();

我收到錯誤消息:類PersonalAccount中的構造函數PersonalAccount無法應用於給定類型。

我試圖在單擊按鈕(其中numAcc是按鈕)時調用該方法:numAcc.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent evt){int personal; personal = class1.getNumberOfPersonalAccounts();}

        });

您沒有默認的構造函數,因此無法創建如下的PersonalAccount:

PersonalAccount class1 = new PersonalAccount();

您必須傳遞參數first,last,accountNumber,cardNumber,cardType。 應該是這樣的:

 PersonalAccount class1 = new PersonalAccount("FirstName", "Last_Name", "123456", "123456789", "Visa");

閱讀以下內容: http : //www.dummies.com/how-to/content/how-to-use-a-constructor-in-java.html

您沒有PersonalAccount的零參數構造函數,這就是給定語句失敗的原因。 那是你的問題嗎?

問題出在這里,構造函數是private

private PersonalAccount(String first, String last, String accountNumber, String cardNumber, String cardType)

兩件事情:您需要更改構造函數,使其public以便可以訪問:

public PersonalAccount(String first, String last, String accountNumber, String cardNumber, String cardType)

接下來的事情是提供諸如firstlastaccountNumber等參數。但是,如果您聲明: public PersonalAccount() ,則在實例化該類時就不需要提供參數。

您現在應該可以調用此類的方法!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM