网站首页 > 精选教程 正文
原文
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 的范畴
猜你喜欢
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 5.2.3相等测试与继承
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 5.2.4 hashCode方法
- 2024-11-28 Java入门书单
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 4.3.7 隐式参数与显式参数
- 2024-11-28 全网最完整的免费java教程讲义系列(四)——java的流程控制
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 4.6 对象构造 4.6.1重载
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 3.10 数组
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 4.3 自定义类
- 2024-11-28 2019年Java核心技术我整理了200多页pdf,今天分享给你
- 2024-11-28 java 核心技术12版卷1 - 1.3 Java applet 与 Internet
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)