我对Java和OOP很陌生,我需要一些帮助来理解一些事情。假设你有以下课程:
public class NewClass {
private long time;
public NewClass () {
time = 0;
}
public NewClass (long time) {
this.time = time;
}
public long GetAsMs () {
return time;
}
public boolean isGreaterThan(NewClass span) {
return GetAsMs() > span.GetAsMs();
}我知道,如果我创建这个类的一个新实例,我将有一个包含字段/变量time和相关方法的对象。我不明白isGreaterThan到底在做什么,我怎么称呼它。它所比较的这两个“变量”不是总是完全相同的吗?
发布于 2014-09-10 08:03:42
它们可能不同,请注意接受参数的构造函数:
public NewClass (long time) {
this.time = time;
}如果您构造两个对象:
NewClass xObj = new NewClass(12345678910);
NewClass yObj = new NewClass(12345678919);现在xObj.isGreaterThan(yObj)将返回false。为什么?让我们看看那里发生了什么:
isGreaterThan应用于xObj对象,该对象具有值为12345678910的类成员time。您正在传递具有自己的yObj的time,它的值为12345678919 --而且它们是不同的,当应用于不同的对象时,GetAsMs将返回两个不同的结果。
https://stackoverflow.com/questions/25760218
复制相似问题