类和对象-练习题

类和对象-练习题

在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。此外还有些不同的特征,比如,圆形都有半径,可以根据半径计算圆形的面积和周长,矩形都有宽和高,可以根据宽高来计算矩形的面积和周长。
1、编写Java程序。
(1)方形类、长方形类,要求:
①抽象图形类中有属性画笔颜色、图形是否填充,有方法获取图形面积、获取图形周长等;
②使用构造方 法为其成员属性赋初值;
③在每个派生类中都重写toString()方法,返回所有属性的信息;
④根据文字描述合理设计类的其他成员属性和方法。
(2)设计实现画板类,要求
①画一个红色、无填充、长和宽分别为10.0与5.0的长方形;
②画一个绿色、有填充、半径为3.0的圆形;
③画一个黄色、无填充、边长为4.0的正方形;
④分别求三个对象的面积和周长,并将每个对象的所有属性信息打印到控制台。

/**
* 图形类
*/
public abstract class Graph {
	private String colour;
	private boolean fill;
	public abstract double area();
	public abstract double perimeter();
	public Graph(String colour,boolean fill){
		this.colour=colour;
		this.fill=fill;
	}
	public abstract String toString();
	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 Rectangle extends Graph{
	private double length;
	private double width;
	public Rectangle(String colour, boolean fill,double width,double length) {
		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 area() {
		
		return length*width;
	}
	public double perimeter() {
		
		return 2*(length+width);
	}

	public String toString() {
		
		return "长方形的边框颜色是:"+getColour()+"\t有无填充:"+isFill()+ "\t长为:" +length+"\t宽为:"+width+"\t周长为:"+perimeter()+"\t面积为:"+area();
	}
}
/**
* 圆类
*/
public class Circle extends Graph{
	private double radius;
	public Circle(String colour, boolean fill, double radius) {
		super(colour, fill);
		this.radius=radius;	
	}
	
	public double getRadius() {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}


	public double area() {
		
		return Math.PI*radius*radius;
	}
	public double perimeter() {
		
		return Math.PI*2*radius;
	}
	
	public String toString(){
		return "圆形的边框颜色是:"+getColour()+"\t有无填充:"+isFill()+"\t半径为:"+radius+"\t周长为:"+perimeter()+"\t面积为:"+area();	
	}
}
/**
* 正方形类
*/
public class Square extends Graph {
	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 area() {
		
		return side*side;
	}
	public double perimeter() {
		return 4*side;
	}
	
	public String toString() {
		return "正方形的边框颜色是:"+getColour()+"\t有无填充:"+isFill()+"\t边长为:"+side+"\t周长为:"+perimeter()+"\t面积为:"+area();
	}
}
/**
* 方法
*/
public class Main {
	public static void main(String[] args) {
		Rectangle rectangle=new Rectangle("红色",false,10,5);
		System.out.println(rectangle.toString());
		Circle circle=new Circle("绿色",true,3);
		System.out.println(circle.toString());
		Square square=new Square("黄色",false,4);
		System.out.println(square.toString());
	}
}
输出结果:
长方形的边框颜色是:红色	有无填充:false	长为:5.0	宽为:10.0	周长为:30.0	面积为:50.0
圆形的边框颜色是:绿色	有无填充:true	半径为:3.0	周长为:18.84955592153876	面积为:28.274333882308138
正方形的边框颜色是:黄色	有无填充:false	边长为:4.0	周长为:16.0	面积为:16.0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值