2013-04-07 4 views
0

Итак, у меня есть задание в Advanced Inheritance для Java, и код довольно сильно забит, но у меня проблемы с его завершением и фактическое отображение результата. Программа была разделена на 4 разные части, и я их перечислял ниже.Выход не отображает ничего

Account.java

public abstract class Account 
{ 
protected long accountNumber; 
protected double accountBalance; 
public long getAccountNumber() 
{ 
    return accountNumber; 
} 
public double getAccountBalance() 
{ 
    return accountBalance; 
} 
public void setAccountNumber(long number) 
{ 
    number = accountNumber; 
} 
public void setAccountBalance(double balance) 
{ 
    balance = accountBalance; 
} 
public void setUpAccount(long number, double balance) //look up constructors 
{ 
    number = accountNumber; 
    balance = accountBalance; 
} 
public String toString() 
{ 
    return "Account Number: " + accountNumber + " Account Balance: " + accountBalance; 
} 
public abstract double computeInterest(int intPeriod); 
} 

Checkings.java

public class Checking extends Account 
{ 
public String toString() 
{ 
    String info = "Checking\nAccount Number: " + accountNumber + 
                "\nAccount Balance: " + accountBalance ; 
    return info; 
} 
public Checking(long number) 
{ 
    number = accountNumber; 
} 
public double computeInterest(int intPeriod) 
{ 
    double total = ((accountBalance - 700) * .02) * 3; 
    return total; 
} 
} 

Savings.java

public class Savings extends Account 
{ 
private double interestRate; 
public double getInterest() 
{ 
    return interestRate; 
} 
public void setInterest(double inter) 
{ 
    inter = interestRate; 
} 
public String toString() 
{ 
    String info = "Savings\nAccount Number: " + accountNumber + " \nAccount Balance: " 
                  + accountBalance + " \nInterest Rate: " + interestRate; 
    return info; 
} 
public Savings(long number, double interest) 
{ 
    number = accountNumber; 
    interest = interestRate; 
} 
public double computeInterest(int intPeriod) 
{ 
    double total = Math.pow((1 + interestRate), intPeriod) * accountBalance - accountBalance; 
    return total; 
} 
} 

AccountArray.java

public class AccountArray 
{ 
    public static void main(String[] args) 
    { 
     Account[] refAccount = new Account[10]; 
     /*refAccount[0] = new Checking(100); 
     refAccount[1] = new Checking(101); 
     refAccount[2] = new Checking(102); 
     refAccount[3] = new Checking(103); 
     refAccount[4] = new Checking(104); 
     refAccount[5] = new Savings(105, .02); 
     refAccount[6] = new Savings(106, .02); 
     refAccount[7] = new Savings(107, .02); 
     refAccount[8] = new Savings(108, .02); 
     refAccount[9] = new Savings(109, .02); 

     refAccount[0].setAccountBalance(1000.0); 
    refAccount[1].setAccountBalance(2000.0); 
    refAccount[2].setAccountBalance(3000.0); 
    refAccount[3].setAccountBalance(4000.0); 
    refAccount[4].setAccountBalance(5000.0); 
    refAccount[5].setAccountBalance(6000.0); 
    refAccount[6].setAccountBalance(7000.0); 
    refAccount[7].setAccountBalance(8000.0); 
    refAccount[8].setAccountBalance(9000.0); 
    refAccount[9].setAccountBalance(10000.0);*/ 
    for(int inc = 0; inc < 10; inc++) 
    { 
     refAccount[0] = new Checking(100); 
     refAccount[1] = new Checking(101); 
     refAccount[2] = new Checking(102); 
     refAccount[3] = new Checking(103); 
     refAccount[4] = new Checking(104); 
     refAccount[5] = new Savings(105, .02); 
     refAccount[6] = new Savings(106, .02); 
     refAccount[7] = new Savings(107, .02); 
     refAccount[8] = new Savings(108, .02); 
     refAccount[9] = new Savings(109, .02); 

     refAccount[0].setAccountBalance(1000.0); 
     refAccount[1].setAccountBalance(2000.0); 
     refAccount[2].setAccountBalance(3000.0); 
     refAccount[3].setAccountBalance(4000.0); 
     refAccount[4].setAccountBalance(5000.0); 
     refAccount[5].setAccountBalance(6000.0); 
     refAccount[6].setAccountBalance(7000.0); 
     refAccount[7].setAccountBalance(8000.0); 
     refAccount[8].setAccountBalance(9000.0); 
     refAccount[9].setAccountBalance(10000.0); 
    } 
    for(int ctr = 0; ctr < 10; ctr++) 
    { 
     System.out.println(refAccount[ctr].toString()); 
    } 
} 

} 

Есть ли что-то, что я, по-видимому, явно отсутствует? Все это компилируется просто отлично, но на выходе отображаются только 0, а не номера счетов, баланс или интерес.

Любая помощь будет очень признательна, так как у меня заканчивается время.

+0

Добро пожаловать в StackOverflow! Вы, скорее всего, получите ответы быстро, если сможете сузить код, который дает вам проблемы. Если вы можете изолировать проблему, людям проще обратиться к ней. – ASGM

ответ

3

Все ваши сеттеров выглядят навыворот, вы их получили, как ...

public void setAccountNumber(long number) 
{ 
    number = accountNumber; 
} 
public void setAccountBalance(double balance) 
{ 
    balance = accountBalance; 
} 

Все, что вы там делаете устанавливает значение параметра, то они должны быть ...

public void setAccountNumber(long number) 
{ 
    accountNumber= number; 
} 
public void setAccountBalance(double balance) 
{ 
    accountBalance= balance; 
} 

Вы можете убедиться, что это не произойдет, мои делают ваши параметры окончательных

1

Посмотрите на ваши конструкторах и сеттерах Вы инвертировать переменные атрибуции

Ex

public void setAccountNumber(long number) 
{ 
    number = accountNumber; 
} 

должен быть

public void setAccountNumber(long number) 
{ 
    accountNumber = number; 
} 

же для всех сеттеров и конструкторами

+0

Ничего себе, как мне это удалось! Это получило так сильно исправленное спасибо! – Nexaz

+0

Рад помочь;) – TheEwook

+0

Ваш компилятор предупредил бы вас, @Nexaz, при использовании 'public void setAccountNumber (final long number)'. – Arjan

Смежные вопросы