当前位置: 首页 > news >正文

03作业

03作业

一、关于static修饰符的问题

  1. 适合用static修饰的方法

    • 工具类方法(如Math类的abs()、StringUtils的isEmpty())
    • 工厂方法(用于创建对象的方法)
    • 单例模式的getInstance()方法
    • 与类本身相关而非实例相关的操作
  2. 不使用static修饰的方法特性

    • 属于对象实例,需要创建对象后才能调用
    • 可以访问实例变量和实例方法
    • 具有this指针,指向当前对象
    • 与对象的状态紧密相关
  3. Student的getName()不应该用static修饰,因为getName()是获取具体学生对象的姓名,每个学生对象有不同的姓名,属于实例级别的操作。

二、购物车案例中的类设计问题

  1. 识别类、方法、属性的方法

    • 从问题描述中提取名词(可能作为类或属性)
    • 提取动词(可能作为方法)
    • 根据业务逻辑分析实体间的关系
  2. 判定方法与属性所属类的原则

    • 谁拥有这个数据,属性就属于谁
    • 谁执行这个操作,方法就属于谁
    • 遵循"高内聚"原则,相关的属性和方法应该放在同一个类中

例如:购物车(Cart)有添加商品的方法,因为购物车"拥有"添加商品这个行为;商品(Product)有价格属性,因为价格是商品的固有特征。

三、类名冲突与代码管理

  1. 避免类名冲突的方法

    • 使用包(package)机制,通过不同的包结构区分
    • 采用公司域名反转作为包的前缀(如com.alibaba.service)
    • 在类名前添加项目或模块前缀(如OrderService、UserService)
  2. 代码管理方式

    • 按功能模块划分包(如controller、service、dao)
    • 按业务领域划分包(如user、order、product)
    • 使用Maven/Gradle等构建工具进行依赖管理
    • 采用模块化开发,将大型项目拆分为多个子模块

举例:一个电商项目可以这样组织包结构:

com.company.ecommerceuser       // 用户相关order      // 订单相关product    // 商品相关cart       // 购物车相关common     // 公共类util       // 工具类

四、《阿里巴巴Java开发手册》中的规范

  1. 变量命名

    • 成员变量、局部变量命名采用lowerCamelCase风格,必须遵从驼峰形式。
    • 定义DO/DTO/VO等POJO类时,不要使用isXXX作为布尔类型变量的前缀。
  2. 类命名

    • 类名使用UpperCamelCase风格,必须遵从驼峰形式并首字母大写。
    • 抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾。
  3. 方法命名

    • 方法名使用lowerCamelCase风格,必须遵从驼峰形式。
    • 获取单个对象的方法用get作前缀,获取多个对象的方法用list作前缀。
  4. 常量命名

    • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚。
    • 不允许出现任何魔法值(即未经定义的常量)直接出现在代码中。
  5. 包命名

    • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。
    • 包名建议使用域名反转形式,如com.alibaba.xxx。
  6. 代码格式

    • 左大括号前不换行,左大括号后换行。
    • 注释的双斜线与注释内容之间有且仅有一个空格。
    • 单行字符数限制不超过120个,超出需要换行。
  7. OOP规约

    • 避免通过一个类的对象引用访问此类的静态变量或静态方法。
    • 所有的覆写方法,必须加@Override注解。
    • 构造方法禁止加入任何业务逻辑,如果有初始化逻辑,请放在init方法中。
http://www.hskmm.com/?act=detail&tid=10555

相关文章:

  • 软工作业个人项目
  • YOLO进阶提升 5标注与配置
  • rapidxml中接口函数
  • YOLO进阶提升 6模型训练与测试
  • YOLO进阶提升 4训练准备与数据处理
  • windows安装elasticsearch
  • YOLO进阶提升 5标注与配置补充
  • YOLO进阶提升 3YOLOv4 改进
  • 解码C语言位字段
  • Sql Server 多层嵌套事务的执行结果
  • 面向对象
  • es入门
  • YOLO进阶提升 1YOLOv2 改进
  • C# Avalonia 15- Animation- AnimationPlayerTest
  • 基于Python+Vue开发的体育场馆预约管理系统源码+运行步骤
  • JSONArray集合根据某个字段查询对象
  • 详细介绍:Parasoft C/C++test 针对嵌入式开发的内存错误检测解决方案
  • [WC2006] 水管局长
  • 02-Media-7-uvc.py 应用软件解码的USB摄像头(UVC)捕获视频并显示的程序
  • YOLO入门理解 3YOLOv1 思路与细节
  • YOLO入门理解 评估指标
  • 清除win+r“运行”对话框中的历史记录
  • [ICPC 2024 Yokohama R] Peculiar Protocol
  • YOLO入门理解 基础概念
  • The 2025 ICPC Asia East Continent Online Contest (II)(C,D,E,H,I)
  • 2022年十大Web黑客技术提名开启
  • 13. LangChain4j + 加入检索增加生成 RAG(知识库) - Rainbow
  • 终旅之始——2025 . 9 . 20
  • 深入理解Django Admin只读字段与保存模型的自定义操作 - 详解
  • 深度学习(视觉注意力SeNet/CbmaNet/SkNet/EcaNet)