a) 设计一个图形接口,包括draw,erase两个方法
b) 设计一个圆,三角形,直线三种子图形,让其实现图形接口
c) 设计一个鼠标类,包含两个方法,一个是draw,让其能接收任何一种图形,并完成画的行为;另一个是erase,让其能接收任何一种图形,并完成擦除的行为
d) 最后设计一个测试类,产生三种图形,并使用鼠标类的方法来完成画和擦除。
b) 设计一个圆,三角形,直线三种子图形,让其实现图形接口
c) 设计一个鼠标类,包含两个方法,一个是draw,让其能接收任何一种图形,并完成画的行为;另一个是erase,让其能接收任何一种图形,并完成擦除的行为
d) 最后设计一个测试类,产生三种图形,并使用鼠标类的方法来完成画和擦除。
package com;public class Test {
public static void main(String[] args){
Picture p = null;
int i = (int) (Math.random()*3);
System.out.println("==="+ i);
switch(i){
case 0 : p=new Circle();break;
case 1 : p=new Triangle();break;
case 2 : p=new Line();break;
}
Mouse m = new Mouse();
m.draw(p);
m.erase(p);
}
}class Circle implements Picture {
public void draw() {
System.out.println("Circle draw()");
}
public void erase() {
System.out.println("Circle erase()");
}
}class Triangle implements Picture {
public void draw() {
System.out.println("Triangle draw()");
}
public void erase() {
System.out.println("Triangle erase()");
}
}class Line implements Picture {
public void draw() {
System.out.println("Line draw()");
}
public void erase() {
System.out.println("Line erase()");
}
}class Mouse {
void draw(Picture p){
p.draw();
}
void erase(Picture p){
p.erase();
}
}interface Picture {
void draw();
void erase();
}
package net.csdn.test;public interface Shape {
public void draw(); public void erase();
}package net.csdn.test.impl;import net.csdn.test.Shape;public class Circle implements Shape { public void draw() {
System.out.println("画一个圆.");
} public void erase() {
System.out.println("擦除一个圆.");
}
}package net.csdn.test.impl;import net.csdn.test.Shape;public class Triangle implements Shape { public void draw() {
System.out.println("画一个三角形.");
} public void erase() {
System.out.println("擦除一个三角形.");
}
}package net.csdn.test.impl;import net.csdn.test.Shape;public class Beeline implements Shape { public void draw() {
System.out.println("画一条直线.");
} public void erase() {
System.out.println("擦除一条直线.");
}
}package net.csdn.test;public class Mouse{ public void draw(Shape shape) {
shape.draw();
} public void erase(Shape shape) {
shape.erase();
}
}package net.csdn.test;import net.csdn.test.impl.Beeline;
import net.csdn.test.impl.Circle;
import net.csdn.test.impl.Triangle;public class Tester {
public static void main(String[] args) {
Mouse mouse = new Mouse();
Shape circle = new Circle();
mouse.draw(circle);
mouse.erase(circle); Shape triangle = new Triangle();
mouse.draw(triangle);
mouse.erase(triangle); Shape beeline = new Beeline();
mouse.draw(beeline);
mouse.erase(beeline);
}
}