代码如下!//: c06:CADSystem.java
// Ensuring proper cleanuppackage c06;
import java.util.*;class Shape {
Shape(int i) {
System.out.println("Shape Constructor");
}
void dispose() {
System.out.println("Shape dispose");
}
}class Circle extends Shape {
Circle(int i) {
super(i);
System.out.println("Drawing Circle");
}
void dispose() {
System.out.println("Erasing Circle");
super.dispose();
}
}class Triangle extends Shape {
Triangle(int i) {
super(i);
System.out.println("Drawing Triangle");
}
void dispose() {
System.out.println("Erasing Triangle");
}
}class Line extends Shape {
private int start,end;
Line(int start, int end) {
super(start);
this.start = start;
this.end = end;
System.out.println("Drawing Line: " + start + ", " + end);
}
void dispose() {
System.out.println("Erasing Line: " + start + ", " + end);
super.dispose();
}
}public class CADSystem extends Shape {
private Circle c;
private Triangle t;
private Line[] lines = new Line[5];
public CADSystem(int i) {
super(i + 1);
for(int j = 0; j < lines.length; j++)
lines[j] = new Line(j, j * j);
c = new Circle(1);
t = new Triangle(1);
System.out.println("Combined constructor");
}
public void dispose() {
System.out.println("CADSystem.dispose()");
//The order of cleanup is the reverse
//of the order of initialization
t.dispose();
c.dispose();
for(int i = lines.length - 1; i >= 0; i--)
lines[i].dispose();
super.dispose();
}
public static void main(String args[]) {
CADSystem x = new CADSystem(47);
try
{
//code and exception handling ..
}
finally
{
x.dispose();
}
}
}
大家给看看怎么回事!
// Ensuring proper cleanuppackage c06;
import java.util.*;class Shape {
Shape(int i) {
System.out.println("Shape Constructor");
}
void dispose() {
System.out.println("Shape dispose");
}
}class Circle extends Shape {
Circle(int i) {
super(i);
System.out.println("Drawing Circle");
}
void dispose() {
System.out.println("Erasing Circle");
super.dispose();
}
}class Triangle extends Shape {
Triangle(int i) {
super(i);
System.out.println("Drawing Triangle");
}
void dispose() {
System.out.println("Erasing Triangle");
}
}class Line extends Shape {
private int start,end;
Line(int start, int end) {
super(start);
this.start = start;
this.end = end;
System.out.println("Drawing Line: " + start + ", " + end);
}
void dispose() {
System.out.println("Erasing Line: " + start + ", " + end);
super.dispose();
}
}public class CADSystem extends Shape {
private Circle c;
private Triangle t;
private Line[] lines = new Line[5];
public CADSystem(int i) {
super(i + 1);
for(int j = 0; j < lines.length; j++)
lines[j] = new Line(j, j * j);
c = new Circle(1);
t = new Triangle(1);
System.out.println("Combined constructor");
}
public void dispose() {
System.out.println("CADSystem.dispose()");
//The order of cleanup is the reverse
//of the order of initialization
t.dispose();
c.dispose();
for(int i = lines.length - 1; i >= 0; i--)
lines[i].dispose();
super.dispose();
}
public static void main(String args[]) {
CADSystem x = new CADSystem(47);
try
{
//code and exception handling ..
}
finally
{
x.dispose();
}
}
}
大家给看看怎么回事!
解决方案 »
- linux下在后台得到<input>框值的奇怪问题
- 会点点点点jbpm的进来,简单的不行。
- 关于数据转存如何处理
- jdbc,jsp javabean,hibernate ejb j2ee ,java内容多,接下去该按什么次序学?
- 开发一个C/S的项目可不可以使用spring
- 向action传入对象
- 关于No ResultSet set was produced
- 关于ejb问题
- 看了被托普所骗的程序员兄弟的留言,非常气愤,我们程序员为什么要受到这样的侮辱!!建议所有程序员联合起来,在你么常去的网站,论坛,
- 使用tortoiseSVN的问题
- 求jsp的论坛模板!!
- myeclipse10 struts2部署问题,求大神指导
Shape Constructor
Drawing Line: 0, 0
Shape Constructor
Drawing Line: 1, 1
Shape Constructor
Drawing Line: 2, 4
Shape Constructor
Drawing Line: 3, 9
Shape Constructor
Drawing Line: 4, 16
Shape Constructor
Drawing Circle
Shape Constructor
Drawing Triangle
Combined constructor
CADSystem.dispose()
Erasing Triangle
Erasing Circle
Shape dispose
Erasing Line: 4, 16
Shape dispose
Erasing Line: 3, 9
Shape dispose
Erasing Line: 2, 4
Shape dispose
Erasing Line: 1, 1
Shape dispose
Erasing Line: 0, 0
Shape dispose
Shape dispose