java 三角形類 Triangle的用法詳解

三角形類Triangle

設計一個名為 Triangle 的類來擴展 GeometricObject 類。該類包括:

1、三個名為 side1,side2,side3 的double 數據域表示這個三角形的三條邊,它們的默認值是1.0.

2、一個無參構造方法創建的默認的三角形

3、一個能創建帶指定side1,side2,side3的三角形的構造方法

4、所有三個數據域的訪問器方法

5、一個名為getArea()的方法返回這個三角形的面積

6、一個名為getPerimeter()的方法返回這個三角形的周長

7、一個名為toString()的方法返回這個三角形的字符串描述

問題分析:

按部就班,根據要求,從數據域,到構造方法(無參,有參),到方法,到測試類

學會使用繼承以及繼承的方法就好

代碼演示(已驗證)

1、創建的類:

// 創建的類
package java_testquestions;
class 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 filled() {
 return filled;
 }
 public void setFilled(boolean filled) {
 this.filled = filled;
 }
 public java.util.Date getDateCreated(){
 return dateCreated;
 }
 public String toString() {
 return "created on "+dateCreated +"\n color: "+color + " and filled: "+filled;
 }
}
public class Triangle extends GeometricObject
{
 private double side1;
 private double side2;
 private double side3;
 String color;
 
 Triangle(){
 side1 = 1.0;
 side2 = 1.0;
 side3 = 1.0;
 }
 public Triangle(double side1,double side2,double side3) {
 this.side1 = side1;
 this.side2 = side2;
 this.side3 = side3;
 }
 public double getSide1() {
 return side1;
 }
 public double getSide2() {
 return side2;
 }
 public double getSide3() {
 return side3;
 }
// 父類中已有該方法
 public void setColor(String Color) {
 color = Color;
 }
 public String getColor() {
 return color;
 }
 public double getArea() {
 double s = (side1+side2+side3)*1.0/2;
 double area = Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
 return area;
 }
 
 public double getPerimeter() {
 return side1+side2+side3;
 }
 public String toString() {
 return "Triangle: side1 = "+side1 +"side2 = "+side2 +" side3 = "+side3;
 }
}

2、測試類,Triangle_Test

// 測試類
package java_testquestions;
import java.util.Scanner;
public class Triangle_Test 
{
 public static void main(String[] args)
 {
 Scanner input = new Scanner(System.in);
 
 System.out.println("請輸入三角形的三條邊:"); // 需要用字符串類型輸入,這樣在下面 輸入顏色時就不會報錯
 String side11 = input.nextLine();
 double side1 = Double.parseDouble(side11);
 String side22 = input.nextLine();
 double side2 = Double.parseDouble(side22);
 String side33 = input.nextLine();
 double side3 = Double.parseDouble(side33);
// double side1 = input.nextDouble();
// double side2 = input.nextDouble();
// double side3 = input.nextDouble();
 Triangle triangle = new Triangle(side1,side2,side3);
 
 System.out.println("請輸入三角形的顏色: ");
 String color = input.nextLine();
 triangle.setColor(color);
 System.out.println("\n");
 
 System.out.println("請輸入是否填充 true or false:");
 boolean filled = input.nextBoolean();
 triangle.setFilled(filled);
 
 System.out.println("三角形的面積為 :"+triangle.getArea());
 System.out.println("三角形的周長為 :"+triangle.getPerimeter());
 System.out.println("三角形的顏色為 :"+triangle.getColor());
 System.out.println("三角形是否填充 :"+triangle.filled());
 }
}

泡泡:

創建類的話認真點應該沒什麼,在測試類裡面有一個細節需要註意:在輸入 double 類型 的邊長時,要先使用字符串類型輸入,然後在轉化為double類型數據,轉化方式如下:

 String side11 = input.nextLine();
 double side1 = Double.parseDouble(side11);
 String side22 = input.nextLine();
 double side2 = Double.parseDouble(side22);
 String side33 = input.nextLine();
 double side3 = Double.parseDouble(side33);

嗯,ok,收工。

補充:利用java編寫三角形的判定程序

我就廢話不多說瞭,大傢還是直接看代碼吧~

public static void main(String[] args) {
// TODO 自動生成的方法存根
int a,b,c;
System.out.println(“請輸入三角形的三邊”);
@SuppressWarnings(“resource”)
Scanner sc=new Scanner(System.in);
System.out.println(“a=”);
a=sc.nextInt();
System.out.println(“b=”);
b=sc.nextInt();
System.out.println(“c=”);
c=sc.nextInt();
if((a+b)>c&&(b+c)>a&&(c+a)>b)
System.out.println(a+”,”+b+”,”+c+”能構成三角形!”);
else
System.out.println(a+”,”+b+”,”+c+”不能構成三角形!”);
}

運行結果如下所示

程序小總結:

有的時候,我們需要在滿足某種條件時進行一些操作,而不滿足條件時就不進行任何操作,這個時候我們可以隻使用 if 語句。也就是說,if else 不必同時出現。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。