Объектно-ориентированное программирование в java || не уверен, почему мой список клиентов не распечатывает список клиентов - PullRequest
0 голосов
/ 19 марта 2020
public class CustomerManager {
    private customer[] list;
    private int maxcustomer;
    private int numcustomer;

    public CustomerManager(int size){
        maxcustomer = size;
        numcustomer = 0;
        list = new customer[size];
    }

    //add customer
    public boolean addcustomer(String Address, String Name){
        customer x = new customer(Address, Name);
        if(numcustomer < maxcustomer){
            list[numcustomer] = x;

            return true;
        }
        return false;

    }
  1. Метод списка клиентов - не перечисление клиентов
  2. Я предполагаю, что это потому, что данные не передаются должным образом менеджерам, но не совсем уверен, где я ошибся

    public String listcustomer(){
        String s = " ";
        int i;
        for(i = 0; i < numcustomer; i++){
            s += list[i].getname();list[i].getaddress();
        }
        return s;
    }
    

    }

1 Ответ

1 голос
/ 19 марта 2020

Привет и добро пожаловать в stackoverflow.

Пара вещей - при написании java классы должны начинаться с заглавной буквы, а переменные и функции - с маленькой буквы.

Во-вторых, при добавлении нового клиента необходимо увеличить счетчик

public boolean addcustomer(String address, String name){
    Customer x = new Customer(address, name);
    if(numcustomer < maxcustomer){
        list[numcustomer] = x;
        numcustomer++;
        return true;
    }
    return false;
}

Но вместо этого я бы порекомендовал хранить клиентов в Collection, например List или Set (для предотвращения дублирования). Тогда вам не придется беспокоиться об увеличении счетчика, так как он будет встроен .

private Set<Customer> customers;

public CustomerManager(int size){
    maxcustomer = size;
    customers = new HashSet();
}

public boolean addcustomer(String address, String name){
    Customer newCustomer = new Customer(address, name);
    if(customers.size() < maxcustomer){
        customers.add(newCustomer)
        return true;
    }
    return false;
}

Чтобы гарантировать, что Set не будет хранить дубликаты, вы должны правильно реализовать hashCode и равны больше информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...