java 三角形類 Triangle的用法詳解
三角形類Triangle
設(shè)計(jì)一個(gè)名為 Triangle 的類來(lái)擴(kuò)展 GeometricObject 類。該類包括:
1、三個(gè)名為 side1,side2,side3 的double 數(shù)據(jù)域表示這個(gè)三角形的三條邊,它們的默認(rèn)值是1.0.
2、一個(gè)無(wú)參構(gòu)造方法創(chuàng)建的默認(rèn)的三角形
3、一個(gè)能創(chuàng)建帶指定side1,side2,side3的三角形的構(gòu)造方法
4、所有三個(gè)數(shù)據(jù)域的訪問(wèn)器方法
5、一個(gè)名為getArea()的方法返回這個(gè)三角形的面積
6、一個(gè)名為getPerimeter()的方法返回這個(gè)三角形的周長(zhǎng)
7、一個(gè)名為toString()的方法返回這個(gè)三角形的字符串描述
問(wèn)題分析:
按部就班,根據(jù)要求,從數(shù)據(jù)域,到構(gòu)造方法(無(wú)參,有參),到方法,到測(cè)試類
學(xué)會(huì)使用繼承以及繼承的方法就好
代碼演示(已驗(yàn)證)
1、創(chuàng)建的類:
// 創(chuàng)建的類
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、測(cè)試類,Triangle_Test
// 測(cè)試類
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("請(qǐng)輸入三角形的三條邊:"); // 需要用字符串類型輸入,這樣在下面 輸入顏色時(shí)就不會(huì)報(bào)錯(cuò)
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("請(qǐng)輸入三角形的顏色: ");
String color = input.nextLine();
triangle.setColor(color);
System.out.println("\n");
System.out.println("請(qǐng)輸入是否填充 true or false:");
boolean filled = input.nextBoolean();
triangle.setFilled(filled);
System.out.println("三角形的面積為 :"+triangle.getArea());
System.out.println("三角形的周長(zhǎng)為 :"+triangle.getPerimeter());
System.out.println("三角形的顏色為 :"+triangle.getColor());
System.out.println("三角形是否填充 :"+triangle.filled());
}
}
泡泡:
創(chuàng)建類的話認(rèn)真點(diǎn)應(yīng)該沒(méi)什么,在測(cè)試類里面有一個(gè)細(xì)節(jié)需要注意:在輸入 double 類型 的邊長(zhǎng)時(shí),要先使用字符串類型輸入,然后在轉(zhuǎn)化為double類型數(shù)據(jù),轉(zhuǎn)化方式如下:
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,收工。
補(bǔ)充:利用java編寫(xiě)三角形的判定程序
我就廢話不多說(shuō)了,大家還是直接看代碼吧~
public static void main(String[] args) {
// TODO 自動(dòng)生成的方法存根
int a,b,c;
System.out.println(“請(qǐng)輸入三角形的三邊”);
@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+”能構(gòu)成三角形!”);
else
System.out.println(a+”,”+b+”,”+c+”不能構(gòu)成三角形!”);
}
運(yùn)行結(jié)果如下所示

程序小總結(jié):
有的時(shí)候,我們需要在滿足某種條件時(shí)進(jìn)行一些操作,而不滿足條件時(shí)就不進(jìn)行任何操作,這個(gè)時(shí)候我們可以只使用 if 語(yǔ)句。也就是說(shuō),if else 不必同時(shí)出現(xiàn)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Sentinel熱門(mén)詞匯限流的實(shí)現(xiàn)詳解
這篇文章主要介紹了使用Sentinel對(duì)熱門(mén)詞匯進(jìn)行限流的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Intellij Idea插件開(kāi)發(fā)之創(chuàng)建項(xiàng)目層級(jí)的右鍵菜單
這篇文章主要介紹了Intellij Idea插件開(kāi)發(fā)之創(chuàng)建項(xiàng)目層級(jí)的右鍵菜單,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Java?Stream.reduce()用法詳細(xì)解析
Stream API提供了豐富的中間函數(shù),歸并函數(shù)和終端函數(shù),這些函數(shù)還支持并行化執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Java?Stream.reduce()用法的相關(guān)資料,需要的朋友可以參考下2022-12-12
spring-cloud-gateway降級(jí)的實(shí)現(xiàn)
這篇文章主要介紹了spring-cloud-gateway降級(jí)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Java 8 Stream filter流式過(guò)濾器詳解
本文介紹了Java 8的Stream API中的filter方法,展示了如何使用lambda表達(dá)式根據(jù)條件過(guò)濾流式數(shù)據(jù),通過(guò)實(shí)際代碼示例,展示了filter方法的高效性以及如何結(jié)合findAny和orElse方法處理更復(fù)雜的情況,適合Java新手和追求代碼優(yōu)雅的開(kāi)發(fā)者閱讀,感興趣的朋友一起看看吧2025-02-02
SpringMVC實(shí)戰(zhàn)案例RESTFul實(shí)現(xiàn)添加功能
這篇文章主要為大家介紹了SpringMVC實(shí)戰(zhàn)案例RESTFul實(shí)現(xiàn)添加功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
詳解在springmvc中解決FastJson循環(huán)引用的問(wèn)題
本篇文章主要介紹了在springmvc中解決FastJson循環(huán)引用的問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01

