編程練習題
13.2~13.3節
**13.1(三角形類)
package p13;
public abstract class GeometricObject {
private String color;
private boolean filled;
private java.util.Date dateCreated;
//構造方法
protected GeometricObject() {
dateCreated=new java.util.Date();
}
//構造方法
protected GeometricObject(String color, boolean filled) {
this.color=color;
this.filled=filled;
dateCreated=new java.util.Date();
}
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;
}
public abstract double getArea();
public abstract double getPerimeter();
}
package p13;
public class Triangle extends GeometricObject {
private double side1;
private double side2;
private double side3;
public Triangle() {
}
public Triangle(double side1, double side2, double side3) {
this.side1=side1;
this.side2=side2;
this.side3=side3;
}
public Triangle(double side1, double side2, double side3,
String color, boolean filled) {
this.side1=side1;
this.side2=side2;
this.side3=side3;
setColor(color);//調用父類已有方法
setFilled(filled);//調用父類已有方法
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
public void setSide1(double side1) {
this.side1=side1;
}
public void setSide2(double side2) {
this.side2=side2;
}
public void setSide3(double side3) {
this.side3=side3;
}
public double getArea() {
double s=(side1+side2+side3)/2;
double area=Math.pow( s*(s-side1)*(s-side2)*(s-side3) , 0.5);
return area;
}
public double getPerimeter() {
return side1+side2+side3;
}
}
package p13;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("請輸入三角形的三條邊:");
double side1=input.nextDouble();
double side2=input.nextDouble();
double side3=input.nextDouble();
System.out.print("請輸入三角形的顏色:");
String color=input.next();
System.out.print("該三角形是否填充(true/false):");
boolean filled=input.nextBoolean();
//創建一個Triangle對象
GeometricObject object=new Triangle(side1,side2,side3,color,filled);
System.out.println("該三角形的面積爲:"+object.getArea());
System.out.println("該三角形的周長爲:"+object.getPerimeter());
System.out.println(object.toString());
}
}