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

Java第三周课前思考

  1. 什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?

    • 完成独立功能或创建类的实例或对类级别的属性进行操作的方法应该用static修饰。
    • 不用static修饰的方法往往具有依赖实例状态、通过实例调用、可访问静态变量和方法、有this引用等特性。
    • Student的getName不应该用static修饰,因为getName()的作用是获取某个学生对象的姓名,姓名是Student类的实例属性,若加上static后变成静态方法属于类本身,无法直接访问实例属性。
  2. 购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?

    • 类是通过class关键字定义,可通过class辅助寻找,在案例中有Commodity、Main、ShoppingCart三类;属性是类中定义的成员变量,通常带有访问修饰符,例如Commodity类中的private String name和private double price;方法通过“返回值类型 方法名()”的格式定义,包含方法体{},例如ShoppingCart类中的add(Commodity item)和getQty()。
    • 方法和属性在哪个类中被定义,就属于哪个类。
  3. 一个项目中有很多类。怎样才能避免你项目中的类与别人编写的类同名呢?项目中类各种各样要怎么管理这些代码呢?举例说明。

    • 利用包(Package)来解决,不同包中可以存在同名类,如下
    // 导入两个包中的User类
    import com.school.student.User;
    import com.system.admin.User;
    
    • 按 “功能 / 职责” 划分结构,如下
    com.school.studentmanage/
    ├─ model/                 // 数据模型模块
    │  └─ Student.java        // 学生实体类(存储学号、姓名、年龄、班级等信息)
    ├─ service/               // 业务逻辑模块
    │  └─ StudentService.java // 处理学生核心业务(添加、删除、查询、修改学生信息)
    ├─ controller/            // 交互控制模块
    │  └─ StudentController.java // 接收用户操作(如命令行输入、界面请求)并调用服务
    ├─ util/                  // 学生模块专用工具
    │  └─ StudentValidator.java // 校验学生信息(如学号格式、年龄范围)
    └─ common/                // 通用组件├─ DateUtils.java      // 日期工具(如入学时间格式化)└─ Result.java         // 操作结果(如"添加成功"、"学号不存在")
    
  4. 阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:变量命名、类命名、方法命名、常量命名、包命名、代码格式、OOP规约。

    • 4.1 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
    • 4.2 类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO
    • 4.3 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。
    • 4.4 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
    • 4.5 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
    • 4.6 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格。
    • 4.7 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。
http://www.hskmm.com/?act=detail&tid=8721

相关文章:

  • Java的安装及卸载
  • 题解:P13882 [蓝桥杯 2023 省 Java A] 小蓝的旅行计划
  • 实用指南:订阅式红队专家服务:下一代网络安全评估新模式
  • 更快的布尔矩阵乘法
  • 数据结构初阶——红黑树的实现(C++) - 教程
  • CMC蒲和平3.1
  • 解码C语言数组
  • github启用Disscussions讨论功能
  • RWA技术规范解读:如何实现现实世界资产的合规代币化
  • 干货预警!Apache SeaTunnel 助力多点 DMALL 构建数据集成平台,探索AI新零售行业应用!
  • Apache SeaTunnel 2.3.12 发布!核心引擎升级、连接器生态再扩张
  • 详细介绍:对于牛客网—语言学习篇—C语言入门—链表的题目解析
  • Day17Arrays类的初步认识
  • 小学生模拟赛题解
  • 服务器安装docker、mysql、redis、nginx、nacos、jdk等
  • StringComparer.OrdinalIgnoreCase
  • LLM大模型:Qwen3-Next-80B中的next究竟是个啥?
  • 中了勒索病毒 peng
  • 在 WSL 中通过 Bash 函数快速转换 Windows 路径为 Ansible/WSL 路径 - 教程
  • 金融租赁公司厂商租赁业务调研报告
  • 普科科技PKC7030H交直流电流探头应用指南​​
  • 从“分散”到“统一”,中控技术利用SeaTunnel构建高效数据采集框架,核心数据同步任务0故障运行!
  • T/B cell subtype marker - un
  • SAP FICO 完全凭证替代
  • K8s Application模式下的flink任务执行精要
  • 从0打造一个TTS语音合成引擎:原理与实现
  • 莫队
  • 0voice-2.1.1-网络io与io多路复用select/poll/epoll
  • Java基本语句-分支语句
  • 丘成桐谈AI