【问题标题】:Different type of methods in OOPOOP 中不同类型的方法
【发布时间】:2014-05-16 13:04:40
【问题描述】:

我知道 OOP 中有 Mutator(to set)、Accesor(to get) 和 Construtor(to initialize) 方法。

但是调用的方法是什么?例如“moveCharacterUpward()”、“checkIfHitsWall();”?它们被称为操作方法吗?

【问题讨论】:

  • 所有方法都有作用。我不确定您的示例是否有特定名称。
  • moveCharacterUpward()
  • 方法moveCharacterUpwards 会改变它作为方法的对象的状态吗?如果是这样,它是一个mutator。不是所有的mutator都是setter。
  • 这个问题不清楚。它可能与stackoverflow.com/questions/7769816/… 重复
  • 这个问题不清楚,但是这里有人能够回答我的问题,我已经接受了答案。不要自欺欺人,你是这里唯一不明白问题的人。

标签: java


【解决方案1】:

但是调用的方法是什么

通常它们被称为行为方法——它们定义了对象是/能够做什么——它的行为。什么样的方法真的不重要——和其他方法一样。

通常如果操作返回 void (nothing) 它通常称为方法。当它返回一些东西时,它被称为函数。

注意:一般来说,两者都是方法。这是如何“标记”它们或如何区分/命名它们的唯一方法。

【讨论】:

  • 函数也是方法。
  • @BenAaronson 是的,但我们可以将其专门命名为“函数”。一般来说,两者都是方法。有人可以像我提到的那样命名它。
  • 当我用谷歌搜索“方法类型”时,我能找到的只有 mutator、accesor 和构造函数,但除此之外没有真正提及任何其他内容。只是试图谷歌“行为方法”,但找不到任何东西。我应该搜索什么关键字?
  • @user3589718 通常都是方法。名称“行为”源于方法决定对象的行为这一事实 - 我怎么说,对象能够通过方法做什么。这就是为什么它们可以被命名为“行为”的原因 - 这是许多开发人员经常使用的唯一约定,或者您想要“命名它们”并尝试区分它们。
  • 在 Java 中,它们只被称为方法。我认为这与return value 没有任何关系。而通常method 用于对象(类的实例)。
【解决方案2】:

对于你想要的东西,真的没有什么好说的。如果你想知道为什么,你只需要看看你的问题的措辞。您想知道“做事”的方法的名称是什么。但“做某事”是什么意思?修改器、访问器和构造器都在做事,不是吗?

考虑以下几点:

public void moveCharacterUpward(int distance)
{
    characterPosition.Y += distance;
}

public bool checkIfHitsWall(Movement movement)
{
    return movementResolver.CheckForCollision(characterPosition, wallPosition, movement);
}

(这些只是虚构的例子,假设characterPositionmovementResolverwallPosition 是某种类型的私有成员)。

这是您的两个示例,但您会发现它们的作用完全不同。 moveCharacterUpward 本质上更像是访问器和修改器的组合,以特定方式使用获取然后设置变量。而checkifHitsWall 根本不改变状态,而是回答调用它的代码的问题。没有比“方法”更具体的术语了,因为它们在概念上不是很相似!

【讨论】:

    猜你喜欢
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    相关资源
    最近更新 更多