什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?
- 一个方法需要初始化加载,或者经常被调用的时候,应该用static修饰。或者希望定义一个类成员,使它的使用完全独立于该类的任何对象。
- 要先实例化一个对象然后才可以调用。
- 不应该,因为每个student的信息不同,getName需要考虑不同的对象,每个getName都只属于相应的student。
购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?
- 用语言文字来描述系统的功能,找出相应的动名词。
- 一般动词为方法,名词为属性。
一个项目中有很多类。项目中要怎么管理这些代码呢?
- 可以根据类的功能,将功能相似的类放在同一个包中,方便后续对包的导入和使用。
阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:
变量命名、类命名、方法命名、常量命名、包命名、代码格式、OOP规约。
变量命名
- 要用驼峰命名法命名多个单词组成的变量名
- 变量名不可以和java的关键字冲突
类命名
- 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写
- 名字必须以字母开头,后面可以跟字母和数字的任意组合
- 不能使用 Java 关键字作为类名
方法命名
- Dao 接口命名:这里的方法名字最好对应着sql语句,然后表示条件用By作为介词,表示查询列表用list前缀。
- Service 接口命名:这里用的是解决人类的思维,查询就是find,添加是add,删除就是remove,修改是modify。然后条件也用by,大量用list后缀。
常量命名
- 常量名需要全部大写,这样浏览时就可以轻松找到程序中的常量并进行检查或者修改。
- 为了避免程序之间出现错误,不能够使用数字作为一个常量的开头。
- 为了避免Java程序误判,常量命名需要避开关键词。
包命名
- 包名都由小写单词组成,同时不能有特殊字符
- util:对应英文utility(实用工具),一般存放工具类
- business:一般存放业务类,处理程序业务的功能类就放在这里。
- control:一般存放控制类,后台控制的一些类就放在这里
- dao:对应英文Data Access Object,数据访问对象,一般存放与数据库(文本、Excel等)打交道的类
- vo:对应英文Value Object,值对象,一般存放实体(Model)。
- driver:一般存放驱动类,一般显示菜单,调用dao等包中的方法来驱动程序。
代码格式
- Java中的程序代码都必须放在一个类中
- Java语言是严格区分大小写的
- 大括号的开始在代码块开始的行尾,闭合在和代码块同一缩进的行首
OOP规约
- 避免通过一个类的对象引用访问此类的静态变量或静态方法,无畏增加编译器解析成本,直接用类名访问即可。
- 所有的覆写方法,必须加@ Override注解。
- 相同参数类型,相同业务含义,才可以使用java的可变参数,避免使用Object。
- 所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。
- Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。
- 所有的 POJO 类属性必须使用包装数据类型。
- RPC 方法的返回值和参数必须使用包装数据类型。
- 所有的局部变量使用基本数据类型。