題目:考慮一個(gè)表示繪圖的標(biāo)準(zhǔn)窟却,并且可以根據(jù)不同的圖形來(lái)進(jìn)行繪制;
/**題目:考慮一個(gè)表示繪圖的標(biāo)準(zhǔn)遇汞,并且可以根據(jù)不同的圖形來(lái)進(jìn)行繪制;*/
interface IGraphical {//定義繪圖標(biāo)準(zhǔn)
public void paint();
}
class Point
{
private double x;//x坐標(biāo)
private double y;//y坐標(biāo)
public Point(double x,double y){
this.x = x;
this.y = y;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
}
class Triangle implements IGraphical {//繪制三角形
private double[] a;//三角形第一個(gè)坐標(biāo)
private double[] b;//三角形第二個(gè)坐標(biāo)
private double[] c;//三角形第三個(gè)坐標(biāo)
public Triangle(double[] a,double[] b,double[] c){
this.a = a;
this.b = b;
this.c = c;
}
public void paint(){
System.out.println("當(dāng)前繪制三角形:");
System.out.println("三角形第一個(gè)坐標(biāo)是:"+"["+this.a[0]+","+this.a[1]+"];");
System.out.println("三角形第二個(gè)坐標(biāo)是:"+"["+this.b[0]+","+this.b[0]+"];");
System.out.println("三角形第三個(gè)坐標(biāo)是:"+"["+this.c[0]+","+this.c[0]+"];");
}
}
class Circular implements IGraphical {//繪制圓形
private double radius; //圓形的半徑
public Circular(double radius){
this.radius = radius;
}
public void paint(){
System.out.println("當(dāng)前繪制圓形:");
System.out.println("當(dāng)前繪制圓形的半徑是:"+radius);
}
}
class Factory{ //工廠類
public static IGraphical getInstance(String className,double ... args){
if("triangle".equalsIgnoreCase(className)){
return new Triangle(new double[]{args[0],args[1]},new double[]{args[2],args[3]},new double[]{args[4],args[5]});
}else if("circular".equalsIgnoreCase(className)){
return new Circular(args[0]);
}else{
return null;
}
}
}
class PaintTestDemo
{
public static void main(String[] args)
{
IGraphical ig1 = Factory.getInstance("triangle",1.1,1.1,2,2,3,3);
ig1.paint();
IGraphical ig2 = Factory.getInstance("circular",2);
? ? ? ? ig2.paint();
}
}