第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" ) ;
}
}
}