我只是想了解一些事情。 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();
}
感谢您的帮助。
答案 0 :(得分:2)
testClass的要点是通过在标准输出上打印类bankAccount的参数和方法结果来测试您的帐户:
您的类creditAccount,currentAccount,depositAccount和savingsAccount扩展了类bankAccount(这些类继承了类bankAccount)。
如果您不想使用testBank类,您还可以在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();
}
答案 1 :(得分:1)
测试类实际上并不需要自己的实例,它通常需要的是您正在测试的任何类的实例。通常,您将从不同的文件和测试文件中测试一个类,并测试正在测试的调用类的实例。
答案 2 :(得分: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方法(此方法打印数组内容)。