首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问修饰符

访问修饰符
EN

Stack Overflow用户
提问于 2014-09-10 08:01:48
回答 1查看 86关注 0票数 0

我对Java和OOP很陌生,我需要一些帮助来理解一些事情。假设你有以下课程:

代码语言:javascript
复制
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到底在做什么,我怎么称呼它。它所比较的这两个“变量”不是总是完全相同的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-10 08:03:42

它们可能不同,请注意接受参数的构造函数:

代码语言:javascript
复制
public NewClass (long time) {
      this.time = time;
}

如果您构造两个对象:

代码语言:javascript
复制
NewClass xObj = new NewClass(12345678910);
NewClass yObj = new NewClass(12345678919);

现在xObj.isGreaterThan(yObj)将返回false。为什么?让我们看看那里发生了什么:

isGreaterThan应用于xObj对象,该对象具有值为12345678910的类成员time。您正在传递具有自己的yObjtime,它的值为12345678919 --而且它们是不同的,当应用于不同的对象时,GetAsMs将返回两个不同的结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25760218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档