1.什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?
(1)方法不需要访问对象状态或方法只需访问类的静态字段时,可用static修饰;
(2)特性:是非静态属性,与每个对象绑定,需要通过一个对象来调用该方法;
(3)不应该,静态字段属于类,而不属于单个对象。
2.购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?
首先用一段文字描述购物车系统及其功能,找出其中的名词,如:“商品”、“购物车”、“数量”、“价格”等,看能否作为相应的类或属性;找出其中的动词,如:“放入"、“删除”、“清空”、“增加”等,看能否作为方法,并进一步分析该方法属于哪个类;
3.一个项目中有很多类。怎样才能避免你项目中的类与别人编写的类同名呢?项目中类各种各样要怎么管理这些代码呢?举例说明。
(1)建立不同的包,将功能相同的类放在同一个包中;
(2)例如:可建立一个Student包来存放age和name。
4.阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:
(1)变量命名:命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
(2)类命名:使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO;
(3)方法命名:使用 lowerCamelCase 风格,必须遵从驼峰形式。
(4)常量命名:不允许任何魔法值(即未经定义的常量)直接出现在代码中;
long 或者 Long 初始赋值时,使用大写的 L,不能是小写的 l,小写容易跟数字 1 混淆,造成误解;
不要使用一个常量类维护所有常量,按常量功能进行归类,分开维护;
常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包 内共享常量、类内共享常量。 1) 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。 2) 应用内共享常量:放置在一方库中,通常是 modules 中的 constant 目录下;3) 子工程内部共享常量:即在当前子工程的 constant 目录下。 4) 包内共享常量:即在当前包下单独的 constant 目录下。 5) 类内共享常量:直接在类内部 private static final 定义;
如果变量值仅在一个范围内变化,且带有名称之外的延伸属性,定义为枚举类。下面 正例中的数字就是延伸信息,表示星期几。
(5)包命名:包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用 单数形式,但是类名如果有复数含义,类名可以使用复数形式。
(6)代码格式:若大括号内为空,则写成{}即可,不需换行;如果是非空代码块则:
1) 左大括号前不换行;
2) 左大括号后换行;
3) 右大括号前换行;
4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
if/for/while/switch/do 等保留字与括号之间都必须加空格;
左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格;
任何二目、三目运算符的左右两边都需要加一个空格;
采用 4 个空格缩进,禁止使用 tab 字符;
注释的双斜线与注释内容之间有且仅有一个空格;
方法参数在定义和传入时,多个参数逗号后边必须加空格。
(7)OOP规约:避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成 本,直接用类名来访问即可。相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。不能使用过时的类或方法。