2013-05-08 4 views
0
public class Account 
{ 
static int accountNum; 
static int nextAccountNum = 112200; 
static double balance; 


    public static void main(String args[]) 
    { 
     Account checkingAccount = new Account(1500.00); 
     Account savingAccount = new Account(1000.00); 
     Account moneyMarketAccount = new Account(500.00); 

     checkingAccount.getAccountNumber(); 
     savingAccount.getAccountNumber(); 
     moneyMarketAccount.getAccountNumber(); 

    } 

    public Account(double bal) 
    { 
     balance = bal; 
     accountNum = nextAccountNum; 
     nextAccountNum++; 
    } 

} 

실행할 때마다 반환 변수가 없습니다. 내가 본 것은 완성 된 텍스트입니다. 도움을 찾고 있습니다변수를 반환하는 데 문제가 발생했습니다.

+1

? 인쇄물? – Keppil

답변

1

당신은 아무것도 출력하지 않았습니다. System.out.println을 사용하여 계정 잔액을 출력하십시오 (예 :

System.out.println(checkingAccount.getAccountNumber()); 

또한, static되지 않은 정보 귀하의 accountNumbalance 변수를 만들거나 다른 균형 및 계정 번호는 각각의 새로운 인스턴스 덮어 얻을 것이다.

0

accountNumbalancestatic으로 선언됩니다. 인스턴스 필드가 필요하므로 Account의 각 인스턴스에는 자체 값이 있습니다.

출력을 얻지 못하는 이유는 main() 메서드가 여러 개의 Account 개체를 생성하지만 아무 것도 수행하지 않기 때문입니다.

public class Account 
{ 
    static int nextAccountNum = 112200; 
    int accountNum; 
    double balance; 

    public static void main(String args[]) 
    { 
     Account checkingAccount = new Account(1500.00); 
     Account savingAccount = new Account(1000.00); 
     Account moneyMarketAccount = new Account(500.00); 

     checkingAccount.getAccountNumber(); 
     savingAccount.getAccountNumber(); 
     moneyMarketAccount.getAccountNumber(); 

     System.out.println("Checking: " + checkingAccount.toString());  
     System.out.println("Savings: " + savingAccount.toString());  
     System.out.println("Money market: " + moneyMarketAccount.toString());  
    } 

    public Account(double bal) 
    { 
     balance = bal; 
     accountNum = nextAccountNum; 
     nextAccountNum++; 
    } 

    @Override 
    public String toString() { 
     return "Account " + accountNum + ": balance=" + balance; 
    }  
} 
1

몇 가지 인스턴스가있는 클래스에서 main 함수를 분리하는 것이 좋습니다. 게터와 세터 메소드는 클래스 변수를 적절하게 캡슐화하는 데 사용됩니다. 계정에 있어야합니다. 다음은 그 예입니다.

Main.java

public class Main { 
    public static void main(String args[]) 
    { 
     Account checkingAccount = new Account(1,1500.00); 
     Account savingAccount = new Account(2,1000.00); 
     Account moneyMarketAccount = new Account(3,500.00); 

     System.out.println("Account " + checkingAccount.getAccountNumber() 
       + " has balance of: " + checkingAccount.getBalance()); 
     System.out.println("Account " + savingAccount.getAccountNumber() 
       + " has balance of: " + savingAccount.getBalance()); 
     System.out.println("Account " + moneyMarketAccount.getAccountNumber() 
       + " has balance of: " + moneyMarketAccount.getBalance()); 
    } 
} 

Account.java 당신이 얻을 기대하고 무엇

public class Account 
{ 
private int accountNum; 
private int nextAccountNum = 112200; 
private double balance; 

    public Account(int accountNum, double balance) 
    { 
     this.balance = balance; 
     this.accountNum = accountNum; 
    } 

    public int getAccountNumber() { 
     return accountNum; 
    } 

    public double getBalance() { 
     return balance; 
    } 

    public void setBalance(int balance) { 
     // check if balance variable is a correct value 
     // before setting it to the class variable 
     this.balance = balance; 
    } 

}