一、什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?
- 当一个对象经常要被调用的时候或需要初始化加载的时候,static修饰的方法不需要对象就可以通过类名调用。
- 不用static修饰的方法不属于类,属于对象;可以操作对象,但是不能访问静态字段,可以访问实例字段。
- 不应该。因为Students是对象属于个人。
二、购物车案例中,使用了什么方法将问题描述中的类、方法、属性找出来?方法与属性到底属于哪个类,要怎么判定呢?
-
通过讲故事找出名词和动词,名词和是否创建类或类属性有关,动词与类的方法有关,
- 根据功能、用途之类的字眼对方法与属性进行类的配对。
三、一个项目中有很多类。怎样才能避免你项目中的类与别人编写的类同名呢?项目中类各种各样要怎么管理这些代码呢?举例说明。
-
可以利用包机制保证类的唯一性,可以使用一个因特网域名以逆序的形式作为包名,然后对于不同项目使用不同的子包。
-
可以通过包管理,把类放入包来管理项目的代码。例如:Banana类可以放入fruit包中,Circle类可以放置shape包中。
四、阅读《阿里巴巴Java开发手册 终极版(1.3.0)》,写出至少7条Java编程规范。应包含如下几个方面:变量命名、类命名、方法命名、常量命名、包命名、代码格式、OOP规约。
- 变量命名:代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
- 类命名:类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO
- 方法命名:方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从 驼峰形式。
- 常量命名:long 或者 Long 初始赋值时,使用大写的 L,不能是小写的 l,小写容易跟数字 1 混 淆,造成误解。
- 包命名:包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用 单数形式,但是类名如果有复数含义,类名可以使用复数形式。
- 代码格式:大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果 是非空代码块则: 1) 左大括号前不换行。 2) 左大括号后换行。 3) 右大括号前换行。 4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
- OOP规约:避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成 本,直接用类名来访问即可。