2013-04-23 3 views
0

Я просто пытаюсь что-то понять. Что такое объект testClass (z1)?Зачем создавать объект testClass

Как я понимаю, это отправная точка для всех других объектов. Я действительно спрашиваю, что это значит, почему/как доза TestClass требует своего экземпляра? и есть ли другой способ добиться тех же результатов?

код ниже: -

public class testBank { 

creditAccount a1 = new creditAccount("Mary Chapple", 2400.41); 
creditAccount a2 = new creditAccount("Jim Smith", 2.56); 
creditAccount a3 = new creditAccount("Henry A Jones", 700.89); 
currentAccount b1 = new currentAccount("Simon Hopkins", 86.01); 
currentAccount b2 = new currentAccount("Jack C Whitheridge", 40000.29); 
currentAccount b3 = new currentAccount("Bill Sutton", 100.23); 
depositAccount c1 = new depositAccount("Theo Gibson", 145.99); 
depositAccount c2 = new depositAccount("Jasper Williams", 3000.29);   
depositAccount c3 = new depositAccount("Julie Banks", 1000001.99);  
savingsAccount d1 = new savingsAccount("Burnard White", 2400.42); 
savingsAccount d2 = new savingsAccount("Richard Bennett", 203.16); 
savingsAccount d3 = new savingsAccount("Bob Robinson", 10000.11); 





public testBank() 
     //Create an array of objects.// 
{ 
    bankAccount[]theAccounts = {a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3}; 

    showAccounts (theAccounts); 
} 
private void showAccounts(bankAccount[] aa) 
{ 
    for (int i = 0;i <aa.length;i++) 
    { 


     System.out.println("Account Holder: " +aa[i].getAccountName()); 
     System.out.println("Balance = £" +aa[i].getBalance()); 
    System.out.println("Balance pluss APR = £" +aa[i].calculateInterest()); 


    } 
} 

public static void main(String[]args) 
{ 

    testBank z1 = new testBank(); 
} 

Спасибо за любую помощь.

+3

Все остальные объекты начинаются с объекта testClass? Я не совсем понимаю ваш вопрос, не могли бы вы привести нам пример? – Keppil

+0

Основываясь на типичном вопросе, заданном здесь, я бы ответил, что вам нужен экземпляр для вызова методов экземпляра. В противном случае вы можете вызывать методы 'static' только из вашего метода' main'. – jlordo

+0

В моем недавнем назначении я создал суперкласс, различные подклассы (A, B, C) и testClass. В testClass я создал различные объекты subClass. AClass a1 = new ACLass – user2292173

ответ

0

Метод testBank() - это конструктор. Эта функция вызывается при создании нового экземпляра testBank.

Этот метод следует использовать для инициализации различных переменных (a1, a2 и т. Д.).

public class testBank 
{ 
    private creditAccount a1; 
    private creditAccount a2; 
    private creditAccount a3; 
    private currentAccount b1; 
    private currentAccount b2; 
    private currentAccount b3; 
    private depositAccount c1; 
    private depositAccount c2;   
    private depositAccount c3;  
    private savingsAccount d1; 
    private savingsAccount d2; 
    private savingsAccount d3; 

    public testBank() 
     //Create an array of objects.// 
    { 
     this.a1 = new creditAccount("Mary Chapple", 2400.41); 
     this.a2 = new creditAccount("Jim Smith", 2.56); 
     this.a3 = new creditAccount("Henry A Jones", 700.89); 
     this.b1 = new currentAccount("Simon Hopkins", 86.01); 
     this.b2 = new currentAccount("Jack C Whitheridge", 40000.29); 
     this.b3 = new currentAccount("Bill Sutton", 100.23); 
     this.c1 = new depositAccount("Theo Gibson", 145.99); 
     this.c2 = new depositAccount("Jasper Williams", 3000.29);   
     this.c3 = new depositAccount("Julie Banks", 1000001.99);  
     this.d1 = new savingsAccount("Burnard White", 2400.42); 
     this.d2 = new savingsAccount("Richard Bennett", 203.16); 
     this.d3 = new savingsAccount("Bob Robinson", 10000.11); 
     bankAccount[]theAccounts = {a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3}; 

     showAccounts (theAccounts); 
    } 

    private void showAccounts(bankAccount[] aa) 
    { 
     for (int i = 0;i <aa.length;i++) 
     { 
     System.out.println("Account Holder: " +aa[i].getAccountName()); 
     System.out.println("Balance = £" +aa[i].getBalance()); 
     System.out.println("Balance pluss APR = £" +aa[i].calculateInterest()); 
     } 
    } 

    public static void main(String[]args) 
    { 

     testBank z1 = new testBank(); 
    } 
} 

Итак, что там происходит?

при вызове testBank z1 = new testBank(); вы создаете новый экземпляр вашего класса testBank. Таким образом, вызывается конструктор по умолчанию (функция testBank()). Внутри вашего конструктора по умолчанию все частные переменные инициализируются, затем создается массив, и, наконец, вызывается метод showAccounts (этот метод печатает содержимое массива).

1

Испытательный класс фактически не требует отдельного экземпляра, то, что он обычно требует, является экземпляром любого класса, который вы тестируете. Обычно вы тестируете класс из другого файла и в тестовом файле create и instance, который тестирует класс вызова.

2

Точка вашего TestClass это проверить свои счета в печати на стандартный вывод аргументов и метод результата класса ВагЛАссоипЬ:

Ваши классы creditAccount, currentAccount, depositAccount и SavingsAccount расширить класс ВагЛАссоипЬ (эти классы inherite класса bankAccount).

Если вы не хотите использовать класс TestBank, вы можете также создать метод печати в классе ВагЛАссоипЬ который печати эти информации

public void print() 
{ 
    System.out.println("Account Holder: " + this.getAccountName()); 
    System.out.println("Balance = £" + this.getBalance()); 
    System.out.println("Balance pluss APR = £" + this.calculateInterest()); 
} 

Тогда вы будете тестировать свой счет с помощью этого:

public static void main(String[]args) 
{ 
    creditAccount a1 = new creditAccount("Mary Chapple", 2400.41); 
    currentAccount b1 = new currentAccount("Simon Hopkins", 86.01); 
    depositAccount c1 = new depositAccount("Theo Gibson", 145.99);  
    savingsAccount d1 = new savingsAccount("Burnard White", 2400.42); 
    a1.print(); 
    b1.print(); 
    c1.print(); 
    d1.print(); 
} 
+0

Я понимаю наследование и точку тестового класса, но я не понимаю, почему мне нужен объект тестового класса, он не вызывается или не используется каким-либо образом, но моя программа не будет работать без него. ((z1) в нижней части кода) – user2292173

+0

Потому что в этом классе есть основная функция, которая является точкой входа вашей программы. –

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