## 作业1.实现抽象图形类
package com.xpm;
/**
* 继承会报错,因为必须继承基类的抽象方法,或者自己定义成抽象类
* @author 604347112
*
*/## 圆形类##
public class Circle extends Graph{
private double raidus;
public Circle(double d) {
// TODO Auto-generated constructor stub
this.raidus=d;
}
public double getRaidus() {
return raidus;
}
public void setRaidus(double raidus) {
this.raidus = raidus;
}
@Override
public double area() {
// TODO Auto-generated method stub
return Math.PI*raidus*raidus;
}
@Override
public double girth() {
// TODO Auto-generated method stub
return Math.PI*raidus*2;
}
}
## 长方形类
package com.xpm;
public class Rectangle extends Graph{
private double length;
private double width;
public Rectangle(double d, double e) {
this.length=d;
this.width=e;
}
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;
}
@Override
//计算面积
public double area() {
// TODO Auto-generated method stub
return length*width;
}
@Override
public double girth() {
// TODO Auto-generated method stub
return 2*(length+width);
}
}
## 正方形类
package com.xpm;
public class Square extends Graph{
private double length;
public Square(double d) {
this.length=d;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
@Override
public double area() {
// TODO Auto-generated method stub
return length*length;
}
@Override
public double girth() {
// TODO Auto-generated method stub
return length*4;
}
}
## 作业2设计Comparable接口比较对象
package com.xpm;
/**
* 打印语句一般在main方法里面
* @author 604347112
*
*/
public interface Comparable {
public int compareTo(Graph graph);
}
package com.xpm;
public class TestGraphs {
public static void main(String[] args) {
Graph[] gra=new Graph[10];
for (int i = 0; i < 3; i++){
Circle circle=new Circle(2.0+i);
gra[i]=circle;
}
for (int i = 3; i < 7; i++) {
Square square=new Square(3.0+i);
gra[i]=square;
}
for (int i = 7; i < 10; i++) {
Rectangle rectangle=new Rectangle(3.0+i, 4.0+i);
gra[i]=rectangle;
}
Graph max=gra[0];
for (int i=0;i<gra.length;i++){
if (gra[i].area()>max.area()) {
max=gra[i];
}
}
System.out.println(max.area());
}
}
public abstract class Graph implements Comparable{
public abstract double area();
public abstract double girth();
@Override
public int compareTo(Graph graph) {
if(this.area()>graph.area()){
return 1;
}else if (this.area()<graph.area()) {
return -1;
}else {
return 0;
}
}
}
作业三-图形类
最新推荐文章于 2023-03-19 16:42:41 发布