第13章作业

第13章作业

13.5

package p1;
import java.util.Date;

public class GeometricObject implements Comparable<GeometricObject> {

  private String color="white";

  private boolean filled;

  private java.util.Date dateCreated;

 

  public GeometricObject(){

​    dateCreated=new java.util.Date();

  }

 

  public GeometricObject(String color,boolean filled) {

​    dateCreated=new java.util.Date();this.color=color;this.filled=filled;

  }

 

  public String getColor() {return color;

  }

 

  public void setColor(String color) {this.color = color;

  }

 

  public boolean isFilled() {return filled;

  }

 

  public void setFilled(boolean filled) {this.filled = filled;

  }

 

  public java.util.Date getDateCreated(){return dateCreated;

  }

 

  public String toString(){return "created on "+dateCreated+"\ncolor: "+color+" and filled: "+filled;

  }

 

  ***\*@Override\****

  ***\*public int compareTo(GeometricObject o) {\*******\*return 0;\****

  ***\*}\****

 

  ***\*public static Comparable Max(GeometricObject object1,GeometricObject object2){\*******\*if (object1.compareTo(object2)>0)\*******\*return object1;\*******\*else\*******\*return object2;\****

  ***\*}\****

}

 

 

package p1;

 

public class Triangle extends GeometricObject{

  double side1;

  double side2;

  double side3;

 

  public Triangle(){

 

  }

 

  public Triangle(double side1,double side2,double side3){this.side1=side1;this.side2=side2;this.side3=side3;

  }

 

  public double getSide1() {return side1;

  }

 

  public void setSide1(double side1) {this.side1 = side1;

  }

 

  public double getSide2() {return side2;

  }

 

  public void setSide2(double side2) {this.side2 = side2;

  }

 

  public double getSide3() {return side3;

  }

 

  public void setSide3(double side3) {this.side3 = side3;

  }

 

  public double getArea(){double p=(side1+side2+side3)/2;double area=Math.sqrt(p*(p-side1)*(p-side2)*(p-side3));return area;

  }

 

 

  public double getPerimeter(){return side1+side2+side3;

  }

 

  public String toString(){return "Triangle : side1="+side1+" side2="+side2+" side3="+side3;

  }

 

 

  ***\*public int compareTo(GeometricObject o) {\****

    ***\*if(getArea()> ((Triangle) o).getArea()) {\****

      ***\*return 1;\****

    ***\*}else if(getArea() < ((Triangle) o ).getArea()) {\****

      ***\*return -1;\****

    ***\*}else\****

      ***\*return 0;\****

}

 

import p1.GeometricObject;

import p1.Triangle;

public class Test02 {

  public static void main(String[] args) {

    Triangle triangle1 = new Triangle(3,4,5);

    Triangle triangle2 = new Triangle(6,8,10);

    ***\*Triangle triangle = (Triangle)(GeometricObject.Max(triangle1, triangle2));\****

 

    System.out.println("The max Triangle's sises are: " + triangle.getSide1()

        \+ " "+triangle.getSide2()+" "+triangle.getSide3());

    System.out.println("The max Triangle's area is: "+triangle.getArea());

  }

 

}


13.6

package p1;

import java.util.Date;

public class GeometricObject implements Comparable<GeometricObject> {
    private String color="white";
    private boolean filled;
    private java.util.Date dateCreated;

    public GeometricObject(){
        dateCreated=new java.util.Date();
    }

    public GeometricObject(String color,boolean filled) {
        dateCreated=new java.util.Date();
        this.color=color;
        this.filled=filled;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public boolean isFilled() {
        return filled;
    }

    public void setFilled(boolean filled) {
        this.filled = filled;
    }

    public java.util.Date getDateCreated(){
        return dateCreated;
    }

    public String toString(){
        return "created on "+dateCreated+"\ncolor: "+color+" and filled: "+filled;
    }

    @Override
    public int compareTo(GeometricObject o) {
        return 0;
    }

    public static Comparable Max(GeometricObject object1,GeometricObject object2){
        if (object1.compareTo(object2)>0)
            return object1;
        else
            return object2;
    }
}
package p1;

public class Circle extends GeometricObject {
    private double radius = 0;
    private String name;

    public Circle() {

    }
    public Circle(String name,double radius) {
        this.name = name;
        this.radius = radius;
    }

    public double getRadius() {
        return radius;
    }
    public void setRadius(double radius) {
        this.radius = radius;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public double getPerimeter() {
        return Math.PI*2*radius;
    }

    public double getArea() {
        double a = Math.pow(radius,2);
        return Math.PI*a;
    }

    public int compareTo(GeometricObject o) {
        if(getArea()> ((Circle) o).getArea()) {
            return 1;
        }else if(getArea() < ((Circle) o ).getArea()) {
            return -1;
        }else
            return 0;
    }
}
package p1;

public class ComparableCircle extends Circle implements Comparable<GeometricObject>{

    public int compareTo(GeometricObject o) {
        if(getArea()> ((Circle) o).getArea()) {
            return 1;
        }else if(getArea() < ((Circle) o ).getArea()) {
            return -1;
        }else
            return 0;
    }
}
import p1.Circle;
import p1.GeometricObject;

public class Test02 {
    public static void main(String[] args) {
        Circle circle1=new Circle("circle1",5);
        Circle circle2=new Circle("circle2",10);
        Circle circle = (Circle) (GeometricObject.Max(circle1, circle2));

        System.out.println("The max Circle's name is: " +circle.getName());
        System.out.println("The max Circle's radius is: " +circle.getRadius());

    }

}

13.7

interface Colorable {

    void howToColor();
}
class Square extends GeometricObject implements Colorable{
    double side;

    public double getSide() {
        return side;
    }

    public void setSide(double side) {
        this.side = side;
    }

    public Square(){
        this.side=0;
    }
    public Square(double side,String color){
        this.side=side;
        super.setColor(color);
    }

    public void howToColor()
    {
        System.out.println("Colorall four sides");//显示消息
    }
}
package p1;

import p1.GeometricObject;
import p1.Square;
import java.util.Scanner;

public class Test02 {
    public static void main(String[] args) {

        Square square1=new Square(1,"yellow");
        Square square2=new Square();
        Square square3=new Square(3,"blue");
        Square square4=new Square();
        Square square5=new Square(5,"green");
        GeometricObject[] geometricObjects={square1,square2,square3,square4,square5};

        for (int i=0;i<5;i++){
           Square square=(Square) geometricObjects[i];
           if (square.getSide()!=0){
               square.howToColor();
               System.out.println(square.getColor());

           }
           else {
               System.out.println("Can't color!");
           }
            System.out.println("\n");
        }

    }

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值