我正在阅读我在这个短语中遇到的java语言编程中的"数据抽象":
java中的对象具有三个基本属性:状态,身份和行为.对象的状态是其数据类型的值.对象的标识将一个对象与另一个对象区分开来.将对象的标识视为其值存储在内存中的位置很有用.
每个人都可以更具体地解释什么是身份?
假设你有这个简单的类:
class Example {
private int value;
Example(int v) {
this.value = v;
}
public void showValue() {
System.out.println(this.value);
}
}
Run Code Online (Sandbox Code Playgroud)
我们有这个代码(例如,在其他地方的方法中):
Example e1 = new Example(42);
Example e2 = new Example(42);
Run Code Online (Sandbox Code Playgroud)
然后:
e1
并e2
有州(他们的value
成员).在这种情况下,它们都具有相同的状态(42).
e1
并且e2
有行为:一种showValue
将其值转储到控制台的方法.(请注意,它们不一定必须具有相同的行为:我们可以创建一个子类,Example
使用showValue
[可能在弹出的对话框中显示它] 做了不同的事情,并改为创建该子类e2
的实例.)
e1
并e2
有身份:表达e1 == e2
是false
; 它们不是同一个对象.他们每个人都有独特的身份.它们可能是等价的对象(我们可以实现equals
并且hashCode
它们被认为是等价的),但它们永远不会具有相同的身份.
没有任何对象具有与另一个对象相同的身份; 在运行进程的内存中保证对象的标识是唯一的.
(它们还有其他特征,例如它们的类型,但那些是主要的三种.)
归档时间: |
|
查看次数: |
2011 次 |
最近记录: |