From 62b096b97f308a78644244309e7cfef81e6bf5a6 Mon Sep 17 00:00:00 2001 From: Wengxiyi <2179205527@qq.com> Date: Mon, 30 Mar 2026 12:37:12 +0800 Subject: [PATCH] feat:W3 --- W3/Circle.class | Bin 0 -> 323 bytes W3/Circle.java | 12 ++++++++++++ W3/Rectangle.class | Bin 0 -> 332 bytes W3/Rectangle.java | 14 ++++++++++++++ W3/Shape.class | Bin 0 -> 208 bytes W3/Shape.java | 3 +++ W3/ShapeClassDiagram.md | 41 ++++++++++++++++++++++++++++++++++++++++ W3/ShapeUtil.class | Bin 0 -> 1160 bytes W3/ShapeUtil.java | 13 +++++++++++++ W3/Triangle.class | Bin 0 -> 342 bytes W3/Triangle.java | 14 ++++++++++++++ W3/实验报告.txt | 3 +++ 12 files changed, 100 insertions(+) create mode 100644 W3/Circle.class create mode 100644 W3/Circle.java create mode 100644 W3/Rectangle.class create mode 100644 W3/Rectangle.java create mode 100644 W3/Shape.class create mode 100644 W3/Shape.java create mode 100644 W3/ShapeClassDiagram.md create mode 100644 W3/ShapeUtil.class create mode 100644 W3/ShapeUtil.java create mode 100644 W3/Triangle.class create mode 100644 W3/Triangle.java create mode 100644 W3/实验报告.txt diff --git a/W3/Circle.class b/W3/Circle.class new file mode 100644 index 0000000000000000000000000000000000000000..88c83075bbf836fd2588c68755261e8d31cae5d5 GIT binary patch literal 323 zcmX|5%T5A85Uk$UxXWgVfXbDN!Y0ZOh{3S&q+TH02bjPpE@s^Iw~UE|#DgE;FPRv7 zR%0fq?w+oyuFvoH4*&zSBRFscycj+Lf(3IQMeyJc@JETW zLCV70nK$pvo1fpWZva;~iQ&PQ2owZDf*8*9t09D!wzAED;PE@;?n;C%$r%Du3ClPOU>R8b$iflv(ZWdEkr+2n8_sf^DsUP*&`DJOE>)Plx zs363{#j>85TkD3&Ht6C>uQX0M!Q-<%etbz=aa{Xz7WP2c=dKT*J0Q(JLHYRxGS4>X wd@x1mGIkL#3dRr-BobasIKbimf-{~FE8=|3-ZeVU?^|!!P88!2a~_WW0EtpBzyJUM literal 0 HcmV?d00001 diff --git a/W3/Rectangle.java b/W3/Rectangle.java new file mode 100644 index 0000000..5a56388 --- /dev/null +++ b/W3/Rectangle.java @@ -0,0 +1,14 @@ +public class Rectangle extends Shape { + private double length; + private double width; + + public Rectangle(double length, double width) { + this.length = length; + this.width = width; + } + + @Override + public double getArea() { + return length * width; + } +} diff --git a/W3/Shape.class b/W3/Shape.class new file mode 100644 index 0000000000000000000000000000000000000000..d1f00a8f2da628d2bbb81f2b1ec3c9dffda7a23a GIT binary patch literal 208 zcmW+vI}UX UPZk_w)MwTfp$ETp`-}z#e*y3#g8%>k literal 0 HcmV?d00001 diff --git a/W3/Shape.java b/W3/Shape.java new file mode 100644 index 0000000..ac3b8fb --- /dev/null +++ b/W3/Shape.java @@ -0,0 +1,3 @@ +public abstract class Shape { + public abstract double getArea(); +} diff --git a/W3/ShapeClassDiagram.md b/W3/ShapeClassDiagram.md new file mode 100644 index 0000000..278b065 --- /dev/null +++ b/W3/ShapeClassDiagram.md @@ -0,0 +1,41 @@ +# 形状类图 + +``` ++-------------------+ +| Shape | ++-------------------+ +| +getArea():double | ++-------------------+ + ^ + | 继承 ++---------+----------+ +| | +v v ++----------------+ +-------------------+ +----------------+ +| Circle | | Rectangle | | Triangle | ++----------------+ +-------------------+ +----------------+ +| -radius:double | | -length:double | | -base:double | +| | | -width:double | | -height:double | ++----------------+ +-------------------+ +----------------+ +| +getArea():double | | +getArea():double | | +getArea():double | ++----------------+ +-------------------+ +----------------+ + ++-------------------+ +| ShapeUtil | ++-------------------+ +| +printArea(Shape):void | +| +main(String[]):void | ++-------------------+ +``` + +## 类说明 + +1. **Shape** - 抽象类,定义了计算面积的抽象方法 +2. **Circle** - 圆形,继承自 Shape,使用 π×r² 计算面积 +3. **Rectangle** - 矩形,继承自 Shape,使用长×宽计算面积 +4. **Triangle** - 三角形,继承自 Shape,使用 0.5×底×高计算面积 +5. **ShapeUtil** - 工具类,用于测试不同形状的面积计算 + +## 多态特性 + +ShapeUtil.printArea() 方法接收 Shape 类型参数,但运行时会根据实际传入的子类对象调用对应的 getArea() 方法,体现了 Java 的多态特性。 \ No newline at end of file diff --git a/W3/ShapeUtil.class b/W3/ShapeUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..abb0cf92c3572a135033ffb392b95e5305be89f5 GIT binary patch literal 1160 zcmaJ>-A)rx5dID=-F96m@>4`b!GN@YHXrX6Vh*yVl0t?&SX7`kYdmqAJ zyy3=6qZibG@&G=Egm~o}80YK~DWP$bJv(R4%r`UN%$^^AcJ~3?M_xw*LK?yb8WCY= zUgH})ZE<@g{d{Rn6eUAs+_X(O!4OKO7Gj7Zra?Dw2F3~V!loxhiL9IoIko3~Ak#^| za7|klq$_wSqoWCN4b2A5p@pHbu*%DVL0b`WiVXY^xfV*S%|JU63>_uDF0zhY`5O3AVn$Z3ewf`-csF+aCg z(zJARDTaE8iLB`sEfJY)qZH}U(TzSu+%<+U<+GqnlLk^4AOJr~P?ny|`*0ZrK163P ziCN-UVKoO>k;!Nv=orMX0=-29C3A$T;Wk5b-Zgy>9U~Z~cv)wesEg-KTRf|jmV`Uc zmn_nROWdT=63I99YGcp~PQ@*X8B-ZI{j2hZqKX`gx8yQob^gMb2`r&%?Zc( z&9bOtUR!A}wVB%4ID*J>%PN>sWTJRT{2aXBKlr|Vxb^nehwa0UpMHMb{rzo=F&J~U zE!?cdJx_QVW*PcU)myI&4UZWv|KF5GD5x1dG${>!!$Y7xBSPz4+IP{H(YJA+3ig=< zhEZD8v67jZEn1c75JEmg^A~7?J2<