学习目标.
- 重点:掌握pivate、public关键字的用途及其与setter/getter模式和封装性之间的关系。
- 理解static属性与static方法的用途。
- 掌握使用初始化块初始类的方法。掌握初始化块与静态初始化块的区别。
- 掌握使用package管理类。
- 重点:学会识别问题中的类并定义解决问题所需要的类。
- 初步了解Java编程规范。
Problem:
- 什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?
- 购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?
- 一个项目中有很多类。怎样才能避免你项目中的类与别人编写的类同名呢?项目中类各种各样要怎么管理这些代码呢?举例说明。
- 阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:变量命名、类命名、方法命名、常量命名、包命名、代码格式、OOP规约。
Answer:
1.什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?
使用这个方法,没有必要创建对象时或者需要对一些静态变量初始话时就使用static修饰
需要创建对象这个方法才有使用的意义,可以直接调用其他的静态方法和非静态方法
Student的getName方法就需要创建学生对象赋予姓名才有意义,所以不能使用static修饰。
2.购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?
先找出对象,将对象的能做到行为抽象为方法,再将对象的一些基本属性找出来设为变量保存
判断方法到底属于哪个类,其实用被动句的主语可以做到,比如开门这个行为,实际上是门“被”开了,应该属于门这个类更好一点。
3.一个项目中有很多类。怎样才能避免你项目中的类与别人编写的类同名呢?项目中类各种各样要怎么管理这些代码呢?举例说明。
将类放在不同的包中进行管理(类似于树形目录,不同包可以有同名类)
4.阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:变量命名、类命名、方法命名、常量命名、包命名、代码格式、OOP规约。
变量命名
不以下划线或美元符号开头;遵循驼峰命名法,首单词小写后单词首字母大写;
类命名
UpperCamelCase风格,每个单词的首字母大写;
方法命名
第一个单词首字母小写,其后单词的首字母大写
常量命名
全部采用大写,单词间用下划线隔开
包命名
包名都是小写
代码格式
{}的用法,if/for/while/switch/do 括号换行规则,对其,缩进,空格问题
OOP规约
避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可;
所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。
当一个类有多个构造方法,或者多个同名方法,这些方法应该按顺序放置在一起, 便于阅读
类内方法定义顺序依次是:公有方法或保护方法 > 私有方法 > getter/setter 方法。
setter 方法中,参数名称与类成员变量名称一致,this.成员名 = 参数名。在
getter/setter 方法中,不要增加业务逻辑,增加排查问题的难度。详情见如下: