- Java核心技术卷I基础知识(原书第9版)
- (美)Cay S.Horstmann Gary Cornell
- 308字
- 2021-04-01 04:35:56
4.4.1 静态域
如果将域定义为static,每个类中只有一个这样的域。而每一个对象对于所有的实例域却都有自己的一份拷贝。例如,假定需要给每一个雇员赋予唯一的标识码。这里给Employee类添加一个实例域id和一个静态域nextId:
现在,每一个雇员对象都有一个自己的id域,但这个类的所有实例将共享一个nextId域。换句话说,如果有1000个Employee类的对象,则有1000个实例域id。但是,只有一个静态域nextId。即使没有一个雇员对象,静态域nextId也存在。它属于类,而不属于任何独立的对象。
注释:在绝大多数的面向对象程序设计语言中,静态域被称为类域。术语“static”只是沿用了C++的叫法,并无实际意义。
下面实现一个简单的方法:
假定为harry设定雇员标识码:
harry的id域被设置为静态域nextId当前的值,并且静态域nextId的值加1: