1.类
-
封装(encapsulation):封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域(instance field, 对象中的数据称为实例域)
- 对象变量并没有实际包含一个对象,而仅仅是引用一个对象。所有的Java对象都存储在堆中
- 在一个源文件中只能有一个公共类,可以有任意非公共类,文件名必须与public类名字相同
-
访问器方法:只访问对象而不修改对象的方法
- Java编译器会监视调用那些简洁、经常被调用、没有被重载以及可优化的方法
- 方法可以访问所属类的私有特性,而不仅限于访问隐式参数的私有特性
class Employee {
private String name; //私有域
public boolean equals(Employee other) {
return name.equals(other.name); //访问other.name合法
}
}
2.静态域与静态方法
class Employee {
private static int nextId = 1; //静态域
private int id;
}
- 静态常量:static表示该域为所有类共享(如
Math.PI
)
final表示不可修改该变量的值
pulic static final double PI = 3.1415926535898;
- 静态方法:不能向对象实施操作的方法
使用静态方法的两种情况:
- 该方法不需要访问对象状态
- 该方法只需要访问类的静态域
3.对象构造
- 默认域初始化:数值为0,布尔值为false,对象引用为null
- 调用构造器的顺序
1)所有数据初始化为默认值(0,false,null)
2)按照类声明中出现顺序,依次执行初始化语句和初始化块
3)执行构造函数
-
静态初始化块:用来初始化静态域
static { //静态初始化块
Random generator = new Random();
nextId = generator.nextInt(10000);
}
- 析构方法 finalize,将在垃圾回收器清楚对象之前调用,但很难知道其具体调用时间,所以不要指望在finalize中回收短缺资源。
4.包
- 一个类可以使用所属包中的所有类,以及其他包中的公有类
- 包作用域:没有指定public或private的类,方法或变量,可以被同一个包中的所有方法访问。
- JAR文件:Java归档文件
5.文档注释
- 域注释:只需要对公有域(通常指的是静态常量)建立文档
/**
*The Hearts card suit
*/
public static final int HEARTS = 1;
-
@author
姓名
-
@version
版本
-
@since
始于,如 @since version 1.7.1
-
@see
引用,三种方式如下
/**
* 展开与收起之间的状态
* @see BaseResponse#getDesc()
* @see <a href="www.baidu.com">网址</a>
* @see "Core Java2 volume 2"
*/
6.类设计技巧