JAVA語言程序設計(基礎篇) 第十版——第13章 抽象類和接口(參考答案)

編程練習題

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());
		
	}

}

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章