나는이 문제에 대한 해결책을 찾았지만 여기서는 무엇을 해야할지 이해하지 못합니다. 이 프로그램은 수표로 잔액을 빼고 예금으로 돈을 추가하는 ATM 기계를 모방 한 것으로되어 있습니다.부모 클래스의 객체 배열 목록에서 자식 클래스의 메서드 호출
public class Transaction
{
private int transNumber;
private int transId;
private double transAmt;
public Transaction(int number, int id, double amount)
{
transNumber = number;
transId = id;
transAmt = amount;
}
public int getTransNumber()
{
return transNumber;
}
public int getTransId()
{
return transId;
}
public double getTransAmount()
{
return transAmt;
}
}
내가 모든 철수/예금에 대한 거래의 객체를 저장하는 배열 목록 (transList)가 :
나는이 부모 클래스가 있습니다.
하위 클래스입니다 : 내가해야 할 것은 인쇄를위한 JOptionPane의 체크 숫자 밖으로
public class Check extends Transaction
{
private int checkNumber; // check number for each check transaction
public Check(int tId, double tAmt, int tCount, int checkNumber) {
super(tCount, tId, tAmt);
this.checkNumber = checkNumber;
}
public int getCheckNumber() {
return checkNumber;
}
public void setCheckNumber(int checkNumber) {
this.checkNumber = checkNumber;
}
}
사용자가 그들을 위해 요청하는 경우. 메인에서
나는이 :
checkNumStr = JOptionPane.showInputDialog("Enter check number:");
checkNum = Integer.parseInt(checkNumStr);
checkAmtStr = JOptionPane.showInputDialog("Eneter check amount:");
checkAmt = Double.parseDouble(checkAmtStr);
Check c = new Check(1, checkAmt, acctCheck.gettransCount(), checkNum);
acctCheck.addTrans(c);
내가 충분히 명확했는지 모르겠어요. 나는 전에 여기서 질문하지 않았다. 내가 알아야 할 것은 부모 클래스 Transaction의 객체들의 배열리스트로부터 Check.getCheckNumber()를 호출하는 방법이다.
편집 : transList는 다른 클래스에 있습니다 확인 계정 : 그 곳이 아니다 이후 Check
이후
public class CheckingAccount extends Account
{
private double totalServiceCharge;
private static ArrayList<Transaction> transList;
// keeps a list of Transaction objects for the account
private int transCount = 0;
// the count of Transaction objects and used as the ID for each transaction
NumberFormat fmt = NumberFormat.getCurrencyInstance();
public CheckingAccount()
{
transList = new ArrayList<Transaction>();
totalServiceCharge = 0;
}
public double getServiceCharge()
{
return totalServiceCharge;
}
public void setServiceCharge(double currentServiceCharge)
{
totalServiceCharge += currentServiceCharge;
}
// adds a transaction object to the transList
public void addTrans(Transaction newTrans)
{
transList.add (newTrans);
transCount++;
}
//returns the current value of transCount;
public int gettransCount()
{
return transCount;
}
}
답변은 -하지 마세요. Transaction 클래스는 부모 클래스가 아닌 다른 곳에 속해 있으므로이 ArrayList를 가지지 않아야합니다. –