Java計(jì)算幾何圖形面積的實(shí)例代碼
對(duì)于每個(gè)幾何圖形而言,都有一些共同的屬性,如名字、面積等,而其計(jì)算面積的方法卻各不相同。為了簡(jiǎn)化開(kāi)發(fā),請(qǐng)編寫(xiě)程序,定義一個(gè)超類(lèi)來(lái)實(shí)現(xiàn)輸入名字的方法,并使用抽象方法來(lái)計(jì)算面積。
思路分析:
所謂超類(lèi)就是抽象父類(lèi),該抽象類(lèi)中有兩個(gè)方法,分別用來(lái)獲取圖形的名稱(chēng)和圖形的面積。要獲得圖形的名稱(chēng),通過(guò)類(lèi)的getClass().getSimpleName()方法可以實(shí)現(xiàn);要獲得圖形的面積,因?yàn)橛?jì)算面積的方法各不相同,所以該方法是個(gè)抽象方法。
定義一個(gè)子類(lèi)表示圓形,圓形的半徑通過(guò)構(gòu)造方法獲得,圓形的面積通過(guò)重寫(xiě)超類(lèi)中的抽象方法獲得,其中圓周率可以用Math.PI表示。
其他類(lèi)同步驟2,半徑、長(zhǎng)、寬等參數(shù)通過(guò)構(gòu)造方法獲得,這樣才省事嘛。
代碼如下:
public abstract class Shape {
public String getName() {//獲得圖形的名稱(chēng)
return this.getClass().getSimpleName();
}
public abstract double getArea();//獲得圖形的面積
}
public class Circle extends Shape {
private double radius;
public Circle(double radius) {//獲得圓形的半徑
this.radius = radius;
}
@Override
public double getArea() {//計(jì)算圓形的面積
return Math.PI * Math.pow(radius, 2);
}
}
public class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {//獲得矩形的長(zhǎng)和寬
this.length = length;
this.width = width;
}
@Override
public double getArea() {//計(jì)算矩形的面積
return length * width;
}
}
public class Test {
public static void main(String[] args) {
Circle circle = new Circle(1);//創(chuàng)建圓形對(duì)象并將半徑設(shè)置成1
System.out.println("圖形的名稱(chēng)是:" + circle.getName());
System.out.println("圖形的面積是:" + circle.getArea());
Rectangle rectangle = new Rectangle(1, 1);//創(chuàng)建矩形對(duì)象并將長(zhǎng)和寬設(shè)置成1
System.out.println("圖形的名稱(chēng)是:" + rectangle.getName());
System.out.println("圖形的面積是:" + rectangle.getArea());
}
}
效果如圖:
相關(guān)文章
Java通過(guò)Lambda表達(dá)式實(shí)現(xiàn)簡(jiǎn)化代碼
我們?cè)诰帉?xiě)代碼時(shí),常常會(huì)遇到代碼又長(zhǎng)又重復(fù)的情況,就像調(diào)用第3方服務(wù)時(shí),每個(gè)方法都差不多,?寫(xiě)起來(lái)啰嗦,?改起來(lái)麻煩,?還容易改漏,所以本文就來(lái)用Lambda表達(dá)式簡(jiǎn)化一下代碼,希望對(duì)大家有所幫助2023-05-05Java源碼解析CopyOnWriteArrayList的講解
今天小編就為大家分享一篇關(guān)于Java源碼解析CopyOnWriteArrayList的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01java批量導(dǎo)入導(dǎo)出文件的實(shí)例分享(兼容xls,xlsx)
這篇文章主要給大家介紹了利用java批量導(dǎo)入導(dǎo)出文件的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,并且兼容xls,xlsx,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,下面跟著小編一起來(lái)看看詳細(xì)的介紹吧。2017-06-06SpringBoot?+DynamicDataSource切換多數(shù)據(jù)源的全過(guò)程
這篇文章主要介紹了SpringBoot?+DynamicDataSource切換多數(shù)據(jù)源的全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Mybatis中isNotNull與isNotEmpty的使用心得
這篇文章主要介紹了Mybatis中isNotNull與isNotEmpty的使用心得,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03SpringBoot實(shí)現(xiàn)數(shù)據(jù)加密脫敏的示例代碼
這篇文章主要為大家學(xué)習(xí)介紹了SpringBoot如何利用注解+反射+AOP實(shí)現(xiàn)數(shù)據(jù)加密脫敏的功能,文中的示例代碼講解詳細(xì),需要的可以參考一下2023-08-08如何實(shí)現(xiàn)springboot中controller之間的相互調(diào)用
這篇文章主要介紹了實(shí)現(xiàn)springboot中controller之間的相互調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06