Зачем создавать объект testClass

Я просто пытаюсь что-то понять. В чем смысл объекта testClass (z1)?

Насколько я понимаю, это отправная точка для всех других объектов. Я действительно спрашиваю, что это значит, почему / как доза 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 ответа

Решение

Метод 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 (этот метод печатает содержимое массива).

Задача вашего testClass - проверить ваши учетные записи, напечатав на стандартном выходе аргументы и результат метода класса bankAccount:

Ваши классы creditAccount, currentAccount, depositAccount и SavingAccount расширяют класс bankAccount (эти классы наследуют от класса bankAccount).

Если вы не хотите использовать класс testBank, вы также можете создать метод print в классе bankAccount, который будет печатать эту информацию.

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();
}

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

Другие вопросы по тегам