我正在研究一个示例程序。基本上,它为客户注册了一种服务,使用以下方法,我们可以提取某种服务类型下的客户编号。

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

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;
}

最佳答案

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

如果它在同一类中,且具有相同数量的参数,且具有相同的类型和顺序,则不可能:

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


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

您还应该阅读有关Inheritance的信息

关于java - 同一类中的Java类似方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26113838/

10-11 22:21
查看更多