首页 > 编程语言 >9.26实验1:UML与面向对象程序设计原则

9.26实验1:UML与面向对象程序设计原则

时间:2025-01-07 22:22:18浏览次数:1  
标签:PenSize 9.26 utf8mb4 class getSize 面向对象 UML public String

[实验任务一]:UML复习 阅读教材第一章复习UML,回答下述问题: 面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。 1、关联关系       2、聚合关系       3、依赖关系       4、组合关系       [实验任务二]:单一职责原则   登录模块在实际项目开发中很常见,请按照教材28页(PPT49页)利用单一职责原则重构后的类图实现这一模块。   实验要求:   1.提交源代码和对应的数据库文件(注意将此模块保存,以备以后使用); 2.注意编程规范。   <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head>     <title>登录</title> </head> <body> <h1>登录</h1> <form action="login" method="post">     <p>用户名: <input type="text" name="username"></p>     <p>密码: <input type="password" name="password"></p>     <input type="submit" value="登录"> </form> </body> </html>                     数据库:DROP TABLE IF EXISTS `users`;   CREATE TABLE `users` (     `id` int NOT NULL AUTO_INCREMENT,     `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,     `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,     `role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,     PRIMARY KEY (`id`) USING BTREE   ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;       SET FOREIGN_KEY_CHECKS = 1;       [实验任务三]:依赖倒转原则与合成复用原则   在一画图软件中提供了多种大小不同的画笔,并且可以给画笔指定不同的颜色,某设计人员对画笔进行了如上图所示的设计。通过分析,可以发现增加画笔的种类和颜色会使得系统中类的数目急剧增加,请根据合成复用原则和依赖倒转原则对上述设计进行重构。   实验要求:   1.提交源代码; 2.画出重构后的类图。 抽象出颜色接口:public interface Color {     String getColor(); }   public class Red implements Color {     @Override     public String getColor() {         return "Red";     } }   public class Green implements Color {     @Override     public String getColor() {         return "Green";     } }     抽象出画笔大小接口:public interface PenSize {     String getSize(); }   public class SmallPen implements PenSize {     @Override     public String getSize() {         return "Small";     } }   public class MiddlePen implements PenSize {     @Override     public String getSize() {         return "Middle";     } }   public class BigPen implements PenSize {     @Override     public String getSize() {         return "Big";     } }     组合颜色和大小:public class Pen {     private Color color;     private PenSize size;       public Pen(Color color, PenSize size) {         this.color = color;         this.size = size;     }       public void draw() {         System.out.println("Drawing with a " + color.getColor() + " " + size.getSize() + " pen.");     } }

标签:PenSize,9.26,utf8mb4,class,getSize,面向对象,UML,public,String
From: https://www.cnblogs.com/kongxiangzeng/p/18658481

相关文章

  • 面向对象分析与设计Python版 用例与用例图
    文章目录一、用例二、用例图一、用例参与者Actor代表位于系统之外并和系统进行交互的一类事物(人、物、其他软件子系统等)通过它,可以对软件系统与外界发生的交互进行分析和描述,了解客户希望软件系统提供哪些功能参与者的图形表示:根据问题识别参与者谁使用系统?谁......
  • 面向对象(综合练习)
    文字版格斗游戏publicclasspeople{privateStringname;privateintxuetiao;publicpeople(Stringname){this.name=name;this.xuetiao=100;}publicStringgetName(){returnthis.name;}publicintge......
  • 面向对象分析与设计Python版 面向对象思维
    文章目录一、面向对象思想的起源二、面向对象的基本概念三、面向对象的思考方式一、面向对象思想的起源软件人才软件人才从低到高4个成长层次:软件蓝领,软件工程师,卓越软件人才,领军人物卓越软件人才要求系统分析和设计理论基础,掌握大系统需求分析、建模与仿真技......
  • [读书日志]从零开始学习Chisel 第五篇:Scala面向对象编程——类继承(敏捷硬件开发语言Ch
    3.3类继承3.3.1Scala中的类继承为了节省代码量和反映实际各种类之间的联系,通常采取两种策略,包含和继承。包含是说明一个类中包含另一个类的对象,但两者之间没有必然联系。继承是从一个宽泛的类派生出更具体的类的过程,被继承的类称为“超类”或“父类”,而派生出来的类称为......
  • [读书日志]从零开始学习Chisel 第四篇:Scala面向对象编程——操作符即方法(敏捷硬件开发
    3.2操作符即方法3.2.1操作符在Scala中的解释在其它语言中,定义了一些基本的类型,但这些类型并不是我们在面向对象中所说的类。比如说1,这是一个int类型常量,但不能说它是int类型的对象。针对这些数据类型,存在一些基本操作符,比如算数操作符“+”。Scala所追求的是极致的面向对......
  • [读书日志]从零开始学习Chisel 第三篇:Scala面向对象编程——类和对象(敏捷硬件开发语言
    3.Scala面向对象编程3.1类和对象3.1.1类类是用class开头的代码定义,定义完成后可以用new+类名的方式构造一个对象,对象的类型是这个类。类中定义的var和val类型变量称为字段,用def定义的函数称为方法。字段也称为实例变量,因为每个被构造出来的对象都有自己的字段,但所有的对象公......
  • 面向对象编程
    一、面向过程与面向对象面向过程(POP)与面向对象(OOP)面向对象:ObjectOrientedProgramming面向过程:ProcedureOrientedProgramming2.面向对象的三大特征封装(Encapsulation)继承(Inheritance)多态(Polymorphism)3.面向对象的思想概述程序员从面向过程的执行者转......
  • UML之发现用例
    用例是最简单的UML元素,用例图是最简单的UML图,但它也可能是UML中最有用的元素之一。尽管我们用包将工作分解为工作包、团队任务或单项任务,也就是说包是组织UML中的各种图及元素的工具。但是用例图可以帮助我们确定任务,以及应当如何将它们分组并确定工作范围。每个用例都代表用户希......
  • C++面向对象编程:纯虚函数、抽象类、虚析构、纯虚析构
    纯虚函数的目的便是,父类不需要去实现,全部都是在子类中实现,有纯虚函数的话,就是抽象类,而且子类必须重写这个纯虚函数。可见以下代码:#include<iostream>usingnamespacestd;classami{public: virtualvoideat()=0;//纯虚函数,有纯虚函数的便是抽象类};classcat:......
  • C++ 面向对象编程:多态、虚函数原理
    多态的通用描述便是,使用父类指针调用函数,可以根据对象类型来调用对应类型函数,我们分几个步骤来理解,先看下类的占用空间,然后拓展到虚函数对应数组,最后理解多态的原理。我们先来看下在多态中没有任何成员变量的类大小为多大,其实如果没有任何成员变量的话,他大小按理说来应该是零,......