输出:编写用于创建BetterRectangle子类的算法和程序 - 请参阅文本中的第459页的E9.10。提供BetterRectangle子类,通过添加计算矩形区域和周长的方法以及子类的有效构造函数来扩展标准Java库的Rectangle类。提供一个测试程序,用于执行和验证扩展类的新方法。所有输出都应由测试者类处理,而不是超级或子类。
输入:根据执行测试人员类的要求。所有输入都应由测试者类处理,而不是超级或子类。
要求:仅使用前九章中介绍的材料。课程中讨论的风格要求。课堂上讨论并在第8章中描述的课程设计指南。根据需要导入库。
你必须编写至少两个程序:一个是java.awt.Rectangle类的子类扩展;和一个测试器类,它将执行执行和验证扩展子类的所有添加或重写方法所需的操作。不要将任何实例变量添加到子类。在子类构造函数中,使用Rectangle类的setLocation()和setSize()方法。如果合适,包括toString()和equals()方法的覆盖。
import java.awt.Rectangle;
public class BetterRectangle extends Rectangle
{
public BetterRectangle(int i, int j, int Width, int height
{
super.setLocation(i, j);
super.setSize(width, height);
}
public double calculatePerimeter() {
return super.getHeight() * 2 + super.getWidth() * 2;
}
public double calculateArea() {
return super.getHeight() * super.getWidth(); }}
this is what i have so far but im confused about tester classes, im supposed to write 2 programs? i have the sub class extention of the java awt.rectangle but im unsure how to do a tester class that performs the actions required to execute and validate all the added or overridden methods of the extended sub-class.
请帮助
答案 0 :(得分:0)
Tester Class实际上就是让你测试你的代码。最直接的方法是定义另一个类,在main方法中,运行一些情况以确保新添加的方法是正确的。例如:
public class BetterRectangleTester {
public static void main(String[] args){
BetterRectangle r1 = new BetterRectangle(0, 0, 1, 2);
if (r1.calculatePerimeter != 6){
System.out.println("calculatePerimeter is wrong!");
}
else{
System.out.println("calculatePerimeter is working fine.");
}
}
}
以上是一个非常糟糕的Tester类,理想情况下你应该使用单元测试框架,如JUnit。通常,测试“边缘情况”以及所有函数(例如,我没有为calculateArea执行一次)非常重要。