我是 Java 和 OOP 新手,我需要一些帮助来理解一些事情。假设您有以下类(class):
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 方法到底在做什么以及如何调用它。它所比较的这两个“变量”不是总是完全相同吗?
最佳答案
它们可能不同,请注意接受参数的构造函数:
public NewClass (long time) {
this.time = time;
}
如果构造两个对象:
NewClass xObj = new NewClass(12345678910);
NewClass yObj = new NewClass(12345678919);
现在xObj.isGreaterThan(yObj)
将返回false
。为什么?让我们看看那里发生了什么:
isGreaterThan
应用于 xObj
对象,该对象的类成员 time
的值为 12345678910。您正在传递 yObj
有自己的时间
,其值为 12345678919 - 而且它们是不同的,GetAsMs
在应用于不同的对象时会返回两个不同的结果。
关于java - 访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25760218/