JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

java 核心技术-12版 卷Ⅰ- 4.4.1 静态字段

wys521 2024-11-28 09:00:16 精选教程 18 ℃ 0 评论

原文

4.4静态字段与实例字段

在前面给出的示例程序中,main方法都标记了 static 修饰符。下面来讨论这个静态修饰符的含义。

4.4.1 静态字段

如果将一个字段定义为static ,那么这个字段并不出现在每个类的对象中。每个静态字段只有一个副本。可以认为静态字段属于类,而不属于单个对象。例如,假设需要为每一个员工分配唯一的标识码 id,这里为Employee 类添加一个实例字段 id和 一个静态字段 nextId :

class Employee{

	private static int nextId = 1;
  private int id;
   /// ....
}

现在,每一个Employee 对象都有自己的id字段,但这个类的所有实例将共享一个nextId 字段。换句话说,如果有1000个 Employee 类对象,则有1000个实例字段id,每一个对象有一个实例字段id。但是,只有一个静态字段 nextId 。 即使没有Employee 对象,静态字段 nextId 也存在。它属于类,而不属于任何单个对象。

注释:在一些面向对象程序设计语言中,静态字段被称为类字段。术语“静态”只是沿用了C++ 的叫法并无实际意义。

在构造器中,我们为新Employee 对象分配下一个可用的id ,然后将其自增1:

id = nextId;

nextId ++;

假设我们构造了对象 harry 。harry的id 字段设置为静态字段nextId的当前值,并将静态字段nextId 加1:

harry.id = Employee.nextId;

Employee.nextId ++;




个人补充

可以这么理解,class 的概念就像一个模板一样,规定这个类里面有 id name 这些属性。

而每一个实例(e1,e2 ,e3) 则分别处理其自身的id 是几,name是什么。

就像我们要填写一个表单

id : _____

name:______

而下面的static 字段则像是表单的公共部分,大家都是一模一样的,要填写的部分就是实例所管辖的范围。公共一样的部分就是class 的范畴

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表