作业2019.9.26

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

2、基于上题背景,设计实现以下程序:
(1)设计Comparable接口,接口中设计compareTo()方法,用来比较对象。此方法的返回值类型设计为int类型。此方法接收一个参数,参数类型为图形类。
(2)在图形类中实现compareTo()方法,用来比较两个图形的面积大小。
(3)在测试类中,创建图形类的数组,数组中存放多个圆形、正方形、长方形对象,使用compareTo()方法找出数组中面积最大的图形。
提示:比较对象时,可以将compareTo()方法的返回值设置为1、0、-1,来代表比较结果,当前对象大、两者相等或者当前对象小。再次提醒,此题涉及的代码全部展示在此题的题号下,与上一题相独立。

package interfaces;

import java.util.Scanner;

//图形类
public abstract class AbstractT {
public String color;
public String full;
public abstract double getArea();
public abstract double getGirth();
public String toString(){
return color+" "+full;
}

public String getColor() {
	return color;
}
public void setColor(String color) {
	this.color = color;
}
public String Full() {
	return full;
}
public void setFull(String full) {
	this.full = full;
}

}

package interfaces;

import java.util.Scanner;

//圆类
public class Circular extends AbstractT{
public double radius;
public double getRadius() {
return radius;
}
public void setRadius(double r) {
radius= r;
}
@Override
public double getArea() {
// TODO Auto-generated method stub
return 3.142radius;
}
@Override
public double getGirth() {
// TODO Auto-generated method stub
return 3.14radiusradius;
}
public String getFull() {
// TODO Auto-generated method stub
return “isfull”;
}
public String getColor() {
// TODO Auto-generated method stub
return “blue”;
}
public static void compareTo() {
// TODO Auto-generated method stub

}

public static void main(String[] args) {
Circular c=new Circular();
System.out.println(“请输入圆的半径”);
Scanner sc=new Scanner(System.in);
c.radius=sc.nextDouble();
System.out.println(“圆形的周长为”+c.getGirth());
System.out.println(“圆形的面积为”+c.getArea());
System.out.println(c.getColor());
System.out.println(c.Full());
}

}

package interfaces;

import java.util.Scanner;

//正方形类
public class Square extends AbstractT{
public double side;
public double getSide() {
return side;
}
public void setSide(double l) {
side=l;
}
@Override
public double getArea() {
// TODO Auto-generated method stub
return sideside;
}
@Override
public double getGirth() {
// TODO Auto-generated method stub
return 4
side;
}
public String getFull() {
// TODO Auto-generated method stub
return “isfull”;
}
public String getColor() {
// TODO Auto-generated method stub
return “pink”;
}
public static void compareTo() {
// TODO Auto-generated method stub

}

public static void main(String[] args) {
Square s=new Square();
System.out.println(“请输入正方形的边长”);
Scanner sc=new Scanner(System.in);
s.side=sc.nextDouble();
System.out.println(“正方形的周长为”+s.getGirth());
System.out.println(“正方形的面积为”+s.getArea());
System.out.println(s.getColor());
System.out.println(s.getFull());
}
}

package interfaces;

import java.util.Scanner;

//长方形类
public class Oblong extends AbstractT{
public double length;
public double width;
public double getLength(){
return length;
}
public void setLength(double a) {
length=a;
}
public double getWidth() {
return width;
}
public void setWidth(double b) {
width=b;
}
@Override
public double getArea() {
// TODO Auto-generated method stub
return widthlength;
}
@Override
public double getGirth() {
// TODO Auto-generated method stub
return 2
(length+width);
}
public String getFull() {
// TODO Auto-generated method stub
return “isfull”;
}
public String getColor() {
// TODO Auto-generated method stub
return “black”;
}
public static void compareTo() {
// TODO Auto-generated method stub

}
public static void main(String[] args) {
Oblong o=new Oblong();
System.out.println(“请输入长方形的长和宽”);
Scanner w=new Scanner(System.in);
o.length=w.nextDouble();
o.width=w.nextDouble();
System.out.println(“长方形的周长为”+o.getGirth());
System.out.println(“长方形的面积为”+o.getArea());
System.out.println(o.getColor());
System.out.println(o.getFull());
}

}

package interfaces;

import java.util.Scanner;
//画板类
public class Board {
double p=3.14;
public void circular(){
System.out.println(“圆的面积:”+33p);
System.out.println(“圆的周长:”+23p);
}
public void square(){
System.out.println(“正方形的面积:”+44);
System.out.println(“正方形的周长:”+4
4);
}
public void oblong(){
System.out.println(“长方形的面积:”+105);
System.out.println(“长方形的周长:”+2
(10+5));
}
public static void main(String[] args) {
Board b = new Board();
Scanner sc = new Scanner(System.in);
b.circular();
b.square();
b.oblong();
}

}

package interfaces;
//compareTo()
public interface Comparable {
public static int compareTo(){

return 0;

}
public static int Circular(){
return 0;

}
public static int Square(){
return 0;

}
public static int Oblong(){
return 0;

}
public static void main(String[] args) {
Circular c=new Circular();
Square s=new Square();
Oblong o=new Oblong();
Square c1=s;
Circular.compareTo();
Square.compareTo();
Oblong.compareTo();

}
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值