【问题标题】:Is it possible multiple methods with the same name but different parameters in a class?一个类中是否可以有多个同名但参数不同的方法?
【发布时间】:2014-01-30 05:50:54
【问题描述】:

我以前用 C 编写过代码,但我对 java 完全陌生 我正在为我的 OOP 课程做一个教程,这几乎是我第一次正式学习这门语言

在本教程中,我的教授创建了一个类,用于测试我必须自己创建的 I/O 辅助类(顺便说一句,本教程 (a) 是可选的,并且 (b) 不是针对标记,所以我做这个线程不是作弊或任何事情......而且(c)我以前从未使用过java,而我的很多其他同学都有,所以我落后了)。 p>

无论如何。在他创建的测试类中,他调用了一个方法“getInt”,我需要将它放入我的 I/O 帮助器类中。

但是当他调用 getInt 方法时,他有时使用 3 个参数,有时使用 2 个,有时没有,等等。

我知道在 C 中我无法做到这一点(对吗?),但是在 Java 中可以做到吗?如果是这样,怎么办?

【问题讨论】:

  • 参见Overloaded Methods:“Java 编程语言支持重载方法,Java 可以区分具有不同方法签名[但名称相同]的方法。这意味着方法如果一个类中有不同的参数列表,则它们可以具有相同的名称。”(Java 不是 C。)
  • 另外,请注意,重载与“OOP”不相关 - 并非所有 OOP 语言都支持重载,并且某些具有重载的语言不是 OOP。

标签: java methods parameters


【解决方案1】:

是的,这是合法的。它被称为方法重载。它在 Oracle Java 教程 - here 中有描述。

以下是使用重载的getInt 方法实现类的方法。

    public class Foo {
        ...
        public int getInt(String s1) {
            // get and return an int based on a single string.
        }

        public int getInt(String s1, int dflt) {
            // get and return an int based on a string and an integer
        }
    }

通常 (!) 您需要在方法主体中添加不同的内容,以执行所需的操作。

【讨论】:

  • 感谢您的快速回复!我的问题是我的助手类已经完成了很多,但它只适用于教授包含所有 3 个参数的情况。对于所有其他实例,都有那些红色的 Eclipse X,它告诉我我的参数不匹配。我该如何解决这个问题?
  • 不清楚你在问什么,但它听起来就像 you 需要实现getInt 方法的所有重载你的班级......他的助手班级正在打电话。
【解决方案2】:

Method overloading(或函数重载)在 C++ 和 Java 中是合法的,但前提是方法采用不同的参数(即做不同的事情)。 C 不能超载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多