我是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
到底在做什么,我该怎么称呼它。 Aren这两个"变量"它的比较总是完全一样吗?
答案 0 :(得分:2)
它们可能不同,请注意接受参数的构造函数:
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
的{{1}}它的值为12345678919 - 它们不同,time
在应用于不同对象时会返回两个不同的结果。