From 82bb54b80f1496716dd8e8a9ef7958cf3da9a827 Mon Sep 17 00:00:00 2001 From: SunWenxuan <3148628230@qq.com> Date: Sun, 29 Mar 2026 20:28:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'w5'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w5/Main.java | 67 ++++++++++++++++++++++++++++++++++++++ w5/反思.txt | 2 ++ w5/实验报告.txt | 46 ++++++++++++++++++++++++++ w5/类图.png | Bin 0 -> 510020 bytes w5/运行成功截图.png | Bin 0 -> 422080 bytes 5 files changed, 115 insertions(+) create mode 100644 w5/Main.java create mode 100644 w5/反思.txt create mode 100644 w5/实验报告.txt create mode 100644 w5/类图.png create mode 100644 w5/运行成功截图.png diff --git a/w5/Main.java b/w5/Main.java new file mode 100644 index 0000000..1d52caf --- /dev/null +++ b/w5/Main.java @@ -0,0 +1,67 @@ +// 抽象图形类 +abstract class Shape { + public abstract double getArea(); +} + +// 圆形类 +class Circle extends Shape { + private double radius; + + public Circle(double radius) { + this.radius = radius; + } + + @Override + public double getArea() { + return Math.PI * radius * radius; + } +} + +// 矩形类 +class Rectangle extends Shape { + private double width; + private double height; + + public Rectangle(double width, double height) { + this.width = width; + this.height = height; + } + + @Override + public double getArea() { + return width * height; + } +} + +// 三角形类 +class Triangle extends Shape { + private double base; + private double height; + + public Triangle(double base, double height) { + this.base = base; + this.height = height; + } + + @Override + public double getArea() { + return 0.5 * base * height; + } +} + +// 工具类 +class ShapeUtil { + public void printArea(Shape shape) { + System.out.printf("面积:%.2f%n", shape.getArea()); + } +} + +// 主类(程序入口) +public class Main { + public static void main(String[] args) { + ShapeUtil util = new ShapeUtil(); + util.printArea(new Circle(5)); + util.printArea(new Rectangle(4, 6)); + util.printArea(new Triangle(3, 4)); + } +} \ No newline at end of file diff --git a/w5/反思.txt b/w5/反思.txt new file mode 100644 index 0000000..b2ccc20 --- /dev/null +++ b/w5/反思.txt @@ -0,0 +1,2 @@ +反思: +这次实验做完,我对抽象类、继承和多态的理解比之前深了很多。一开始我觉得没必要写抽象类,直接给每个图形类写个计算面积的方法不就行了,后来发现这样写代码很散乱,要是以后加新图形,很容易忘记加计算方法,而用抽象类统一规范后,所有子类都必须实现 getArea() ,不容易出错,这才明白抽象类的核心作用是“定规矩”。 \ No newline at end of file diff --git a/w5/实验报告.txt b/w5/实验报告.txt new file mode 100644 index 0000000..4e3b024 --- /dev/null +++ b/w5/实验报告.txt @@ -0,0 +1,46 @@ +一、实验目的 + +1. 掌握Java抽象类、继承和多态的核心用法。 + +2. 学会用统一的方式处理不同图形的面积计算,简化代码结构。 + +3. 能绘制基础的UML类图,理清类之间的继承与依赖关系。 + +4. 理解组合与继承的区别,能根据场景选择合适的代码复用方式。 + +二、实验内容 + +1. 定义抽象类 Shape ,声明抽象方法 getArea() ,规范所有图形的面积计算行为。 + +2. 创建 Circle 、 Rectangle 、 Triangle 三个类,继承 Shape 并各自重写 getArea() 方法,实现对应图形的面积计算逻辑。 + +3. 编写 ShapeUtil 工具类,通过 printArea() 方法统一打印图形面积,利用多态特性适配不同图形对象。 + +4. 编写 Main 类作为程序入口,创建各类图形对象,调用工具类测试功能,确保运行正常。 + +5. 用Mermaid工具绘制UML类图,清晰展示类的继承关系和依赖关系。 + +三,ai协助记录 + +1. 帮我捋清楚这次实验的整体思路,知道该先写抽象类  Shape ,再让图形类去继承它。 + +2. 写代码的时候,我哪里不会就问 AI,比如  Circle 、 Rectangle  这些类怎么写,还有  ShapeUtil  工具类的逻辑。 + +3. 我跑代码报错,比如找不到  main  方法、类名不一致,都是 AI 帮我分析问题,教我怎么改的。 + +4. 画类图的时候,AI 给我讲了类之间的继承箭头怎么画,还帮我调整了类图的结构,让我看得更明白。 + +5. 报告里“组合和继承”的区别,我一开始分不清,AI 用大白话给我解释,还帮我整理了对比的内容。 +四、组合与继承的回答 + +1. 继承(Inheritance) + +- 定义:是“is-a”的关系,比如圆形是一种图形、矩形是一种图形,子类通过 extends 关键字继承父类的属性和方法,并重写父类的抽象方法来实现专属逻辑。- 本次实验中的作用:用 Shape 作为父类,统一规范所有图形的 getArea() 方法,让不同图形类有统一的行为标准,后续新增图形(比如正方形、梯形)只需继承 Shape 并重写方法即可,不用重新定义规范,代码复用性很强。 +- 优点:代码结构清晰,能快速建立类的层级关系,统一管理子类的行为规范,适合“本质是同类事物”的场景。 + +2. 组合(Composition) - 定义:是“has-a”的关系,通过在一个类中引用另一个类的对象来实现功能复用,比如 ShapeUtil 中使用 Shape 对象,不是继承它,而是调用它的方法。 +- 本次实验中的体现: ShapeUtil 不继承 Shape ,而是通过 printArea(Shape shape) 方法接收 Shape 类型的参数,间接使用 Shape 子类的功能,这种依赖关系就是组合的一种简单形式。 +- 优点:降低类之间的耦合度,父类修改不会直接影响调用类,扩展更灵活,适合“一个类需要使用另一个类功能”的场景,而非本质从属关系。 +五、实验反思 + +这次实验做完,我对抽象类、继承和多态的理解比之前深了很多。一开始我觉得没必要写抽象类,直接给每个图形类写个计算面积的方法不就行了,后来发现这样写代码很散乱,要是以后加新图形,很容易忘记加计算方法,而用抽象类统一规范后,所有子类都必须实现 getArea() ,不容易出错,这才明白抽象类的核心作用是“定规矩”。 \ No newline at end of file diff --git a/w5/类图.png b/w5/类图.png new file mode 100644 index 0000000000000000000000000000000000000000..702520d15f8aa63d86d41574632f609b5e9eae4c GIT binary patch literal 510020 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
uL*&vE8#zQ%WWsuw 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