【问题标题】:java-similar methods in the same class同一个类中的类似 java 的方法
【发布时间】:2014-11-24 16:03:02
【问题描述】:

我正在研究一个示例程序。基本上就是把一个客户注册到一种服务,使用下面的方法,我们就可以提取出某种服务下的客户编号。

我的问题是,这样设计的目的是什么?我认为用户调用第一个方法,第一个方法调用第二个?我们也可以在一个类中拥有同名的方法吗?谢谢!

public ArrayList<Integer> listCustomerNumber(String Service) {
    return listCustomer(service, thisYear, thisMonth);
}

ArrayList<Integer> listCustomerNumber(String serviceName, int year, int month) {
    ArrayList <Integer> ids = new ArrayList <Integer> ();
    Services sd = findServices(serviceName, year, month);
    if (sd != null){
        ArrayList <Customer> customers = sd.listCustomers();
        for (int i=0; i<customers.size(); ++i) {
            ids.add(customers.get(i).getId());
        }
    }
    return ids;
}

【问题讨论】:

  • 这称为“方法重载”,很常见。阅读docs.oracle.com/javase/tutorial/java/javaOO/methods.html 和谷歌“Java 方法重载”。
  • 在您的情况下,这只是为yearmonth 参数提供默认值的简单方法。这通常只是为了方便。在大多数情况下,您可能会使用当前年份和月份,因此您会调用第一个方法来为您填充 2 个缺失的参数。

标签: java class methods private


【解决方案1】:

正如@NPE 在评论中所说,它被称为Method Overloading

如果它在同一个类中,具有相同类型和顺序的相同数量的参数,那么它是不可能的,例如:

int methoda(String a,int b) {
        return b;
}
String methoda(String b,int c) {
        return b;    
}

如果参数的数量和它们的类型相同,但顺序不同,那么这是可能的,因为它会导致方法重载。这意味着方法签名是否相同,包括方法名称、参数数量及其类型以及定义的顺序。

您还应该阅读Inheritance

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    相关资源
    最近更新 更多