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。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- java中抽象類和接口的相同和不同點介紹
- Java在算法題中的輸入問題實例詳解
- java實現工資管理簡單程序
- JAVA新手小白學正則表達式、包裝類、自動裝箱/自動拆箱以及BigDecimal
- 在Java中Scanner的用法總結