- 课前问题列表
- 什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?
- 用static修饰:工具类方法,不依赖对象状态,只执行特定功能的方法;工厂方法,创建对象的静态方法;辅助方法,仅对输入参数进行操作,不涉及实例变量;常量获取方法,返回静态常量的方法
- 特性:依赖于类的实例,必须通过对象调用;可以访问实例变量和静态变量;每个对象可能有不同的行为表现
- 不应该;因为getName用于获取某个Student对象的name属性,而每个Student对象的name值可能不同,所以如果设为static就无法区分不同学生的姓名
- 购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?
- 方法:分析问题中的实体(名词)和行为(动词);名词通常对应类,形容词或 名词对应属性,动词对应方法
- 若属性是某个实体的固有特征,则属于该实体的类;若方法是某个实体的行为,则属于该实体的类
- 一个项目中有很多类。怎样才能避免你项目中的类与别人编写的类同名呢?项目中类各种各样要怎么管理这些代码呢?举例说明。
- 使用包(package)机制,通过唯一的包路径区分同名类。包名通常采用反向域名,再按功能细分
- 按功能模块或分层架构划分包:分层架构:com.company.dao(数据访问层)、com.company.service(业务逻辑层)、com.company.controller(控制层);功能模块:com.company.order(订单模块)、com.company.user(用户模块);如果自己和他人都有User类,可分别放在com.myapp.model.User和com.otherapp.model.User,通过包路径避免冲突
- 阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:
变量命名、类命名、方法命名、常量命名、包命名、代码格式、OOP规约。
变量命名:采用小驼峰命名法(首字母小写,后续单词首字母大写),禁止使用拼音或拼音与英文混合
类命名:采用大驼峰命名法(每个单词首字母大写),禁止使用下划线
方法命名:采用小驼峰命名法,通常以动词开头
常量命名:全部大写,单词间用下划线分隔
包命名:全部小写,多级包用.分隔,禁止使用下划线或大写字母,通常以反向域名开头
代码格式:左大括号{不另起一行,与语句同行,如if (flag) { ... };方法体内的逻辑块需用空行分隔,提高可读性
重写equals()方法时必须同时重写hashCode()方法,否则会导致HashMap等容器中对象无法正确查找