在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。

简介: 编写Java程序:在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。

编写Java程序。



(1)使用继承机制,分别设计实现抽象类 图形类,子类类圆形类、正方形类、长方形类,要求:

①抽象类图形类中有属性包括画笔颜色(String类型)、图形是否填充(boolean类型:true表示填充,false表示不填充),

有方法获取图形面积、获取图形周长等;

②使用构造方法为其属性赋初值;

③在每个子类中都重写toString()方法,返回所有属性的信息;

④根据文字描述合理设计子类的其他属性和方法。


(2)设计实现画板类,要求:

①画一个红色、无填充、长和宽分别为10.0与5.0的长方形;

②画一个绿色、有填充、半径为3.0的圆形;

③画一个黄色、无填充、边长为4.0的正方形;

④分别求三个对象的面积和周长,并将每个对象的所有属性信息打印到控制台。


//抽象类 图形类
public abstract class Graphical {
        private String colour;
        private boolean fill;
        public abstract double perimeter();
        public abstract double area();
        public abstract String toString() ;
        public Graphical() {
        }
        public Graphical(String colour, boolean fill) {
            this.colour = colour;
            this.fill = fill;
        }
        public String getColour() {
            return colour;
        }
        public void setColour(String colour) {
            this.colour = colour;
        }
        public boolean isFill() {
            return fill;
        }
        public void setFill(boolean fill) {
            this.fill = fill;
        }
}
//正方形类
public class Square extends Graphical{
    private double side;
    public Square(String colour, boolean fill, double side) {
        super(colour, fill);
        this.side = side;
    }
    public double getSide() {
        return side;
    }
    public void setSide(double side) {
        this.side = side;
    }
    public double perimeter() {
        return 2*side;
    }
    public double area() {
        return side*side;
    }
    public String toString() {
      return   "正方形的颜色为:"+getColour()+"\t有无填充:"+isFill()+"边长为:"+getSide()+"周长为:"+perimeter()+"面积为:"+area();
    }
}
//长方形类
public class Rectangle extends Graphical{
    private double length;
    private double width;
    public Rectangle(String colour, boolean fill, double length,double width) {
        super(colour, fill);
        this.length = length;
        this.width=  width;
    }
    public double getLength() {
        return length;
    }
    public void setLength(double length) {
        this.length = length;
    }
    public double getWidth() {
        return width;
    }
    public void setWidth(double width) {
        this.width = width;
    }
    public double perimeter() {
        return (length+width)*2;
    }
    public double area() {
        return length*width;
    }
    @Override
    public String toString() {
        return "长方形的颜色为:"+getColour()+"\t有无填充:"+isFill()+"长为:"+getLength()+"宽为:"+getWidth()+"周长为:"+perimeter()+"面积为:"+area();
    }
}
//子类 圆形类
public class Circular extends Graphical {
    private double R;
    public Circular(String colour, boolean fill, double r) {
        super(colour, fill);
        R = r;
    }
    public double getR() {
        return R;
    }
    public void setR(double r) {
        R = r;
    }
    public double perimeter() {
        return R*2*3.14;
    }
    public double area() {
        return R*R*3.14;
    }
    public String toString() {
        return "圆的颜色为:" +getColour() +"\t"+"有无填充:" +isFill()+ "半径为:"+getR()+"的圆形面积为:"+area()+"周长为:"+perimeter() ;
    }
}
//测试类
public class Text {
    public static void main(String[] args) {
        Circular circular=new Circular("绿色",true,3.0);
        System.out.println(circular.toString());
        Rectangle rectangle=new Rectangle("红色",false,10.0,5.0);
        System.out.println(rectangle.toString());
        Square square=new Square("黄色",false,4.0);
        System.out.println(square.toString());
    }
}


相关文章
|
3月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
32 0
|
4月前
|
移动开发 前端开发 JavaScript
html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形
html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形
129 0
html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形
|
5月前
|
计算机视觉
OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字
OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字
46 0
|
8月前
|
存储
Kitten 动态绘制 Y 轴方向立方体的实现方法
Kitten 动态绘制 Y 轴方向立方体的实现方法
27 0
|
计算机视觉
五、OpenCV绘制线、矩形、圆等基本几何形状
通过javaOpenCV中的Imgproc函数进行简单几何图形的绘制
99 0
五、OpenCV绘制线、矩形、圆等基本几何形状
【OpenGL】十二、OpenGL 绘制线段 ( 绘制单条线段 | 绘制多条线段 | 依次连接的点组成的线 | 绘制圈 | 绘制彩色的线 )(一)
【OpenGL】十二、OpenGL 绘制线段 ( 绘制单条线段 | 绘制多条线段 | 依次连接的点组成的线 | 绘制圈 | 绘制彩色的线 )(一)
206 0
【OpenGL】十二、OpenGL 绘制线段 ( 绘制单条线段 | 绘制多条线段 | 依次连接的点组成的线 | 绘制圈 | 绘制彩色的线 )(一)
146.矩形区域的颜色填充
146.矩形区域的颜色填充
54 0
|
算法 API 计算机视觉
OpenCV 轮廓周围绘制矩形框和圆形框
OpenCV 轮廓周围绘制矩形框和圆形框
183 0
OpenCV 轮廓周围绘制矩形框和圆形框