具有屬性:sideA,sideB,sideC,具有構造器,具有方法:計算面積getArea(),修改三條邊modifySides(double a, double b, double c)。構造器個數,setter和getter方法自行設計
uj5u.com熱心網友回復:
setter,getter方法意義不大
package csdn;
public class Triangle {
private double sideA;
private double sideB;
private double sideC;
//等邊三角形
public Triangle(double side) {
this.sideA = side;
this.sideB = side;
this.sideC = side;
}
//等腰三角形
public Triangle(double sideAB, double sideC) {
this.sideA = sideAB;
this.sideB = sideAB;
this.sideC = sideC;
}
//普通三角形
public Triangle(double sideA, double sideB, double sideC) {
this.modifySides(sideA, sideB, sideC);
}
private boolean isTriangle() {
// 設三角形三邊為a,b,c 則a+b>c,a>c-b, b+c>a,b>a-c a+c>b,c>b-a
boolean isFlag = false;
if ((this.sideA + this.sideB > this.sideC) && (this.sideA > (this.sideC - this.sideB))
&& (this.sideB + this.sideC > this.sideA) && (this.sideB > (this.sideA - this.sideC))
&& (this.sideA + this.sideC > this.sideB) && (this.sideC > (this.sideB - this.sideA))) {
isFlag = true;
}
return isFlag;
}
public double getArea() {
double area = -1;
if (isTriangle()) {
// 如果是三角形,則根據海倫公式求解面積
double p = (this.sideA + this.sideB + this.sideC) / 2;
area = Math.sqrt(p * (p - this.sideA) * (p - this.sideB) * (p - this.sideC));
}
return area;
}
public void modifySides(double sideA, double sideB, double sideC) {
this.sideA = sideA;
this.sideB = sideB;
this.sideC = sideC;
}
public static void main(String[] args) {
double a = 30;
double b = 40;
double c = 50;
Triangle ta = new Triangle(a,b,c);
// ta.modifySides(a*2, b*2, c*2); //可取消注釋再看運行效果
double area = ta.getArea();
if (area != -1)
System.out.println(area);
else {
System.out.println("無法求解非三角形的面積!");
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/100481.html
標籤:Java SE
上一篇:Java后臺查詢資料庫歷史資料回傳到瀏覽器端引數配置問題??
下一篇:java集合求助
