Вы путаете array
инициализации с инициализации объекта.
cc
является array
из Customer
(обратите внимание, заглавные буквы здесь).
Чтобы получить доступ к конструктору Customer
и получить экземпляр, вам необходимо заполнить ваши array
экземплярами.
Чтобы упростить проблему вы можете сделать:
cc = new Customer[100];
Arrays.fill(cc, new Customer(1));
Это наполнит ваши 100 размера array
с 100 элементов ссылок один экземпляр Customer
которого id
будет 1
.
Осторожно, экземпляр делится на 100 элементов.
В свою очередь, если вы изменяете один элемент, вы «изменяете весь массив», как показано ниже.
Самодостаточный пример
public class Main {
public static void main(String[] args) {
// initializing array
Customer[] cc = new Customer[100];
// filling array
Arrays.fill(cc, new Customer(1));
// printing array
System.out.println(Arrays.toString(cc));
// changing any array element
cc[0].setId(2);
// printing array again
System.out.println(Arrays.toString(cc));
}
static class Customer {
int id;
int status;
Customer(int value) {
id = value;
status = 0;
}
// invoking this method on any object of the array will update all references
public void setId(int value) {
id = value;
}
@Override
public String toString() {
return String.format("Customer %d", id);
}
}
}
Выход
[Customer 1, Customer 1, Customer 1, Customer 1, Customer 1, Customer 1, Customer 1, Customer 1, etc...]
[Customer 2, Customer 2, Customer 2, Customer 2, Customer 2, Customer 2, Customer 2, Customer 2, etc...]
Loop не будет выполнять ... –
Был typo..Thanks. –
Я бы сказал, что [бесшумные петли - очень опасные звери] (http://cafe.elharo.com/blogroll/braceless-if-considered-harmful/); подвержены более поздним ошибкам при изменении кода –