[英]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)
接下來的事情是提供諸如first
, last
, accountNumber
等參數。但是,如果您聲明: public PersonalAccount()
,則在實例化該類時就不需要提供參數。
您現在應該可以調用此類的方法!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.