我有这个课程
public class customer {
int id;
int status ;
customer(int value)
{
id = value;
status = 0;
}
}
我想创建一个由100个客户对象组成的数组。 如何将参数传递给客户类的约束函数?
public class barbershop {
Queue WaitSeat ;
Queue WaitRoom ;
static barber [] bb ;
static customer [] cc;
barbershop(){
WaitSeat = new PriorityQueue(4);
WaitRoom = new PriorityQueue(13);
bb = new barber[3];
cc = new customer [100]{1}; // problem !
}
}
答案 0 :(得分:4)
您需要单独创建每个对象,然后将其放入数组中。这是两个单独的操作(尽管它们可以在同一行内)。循环将使这更加令人愉快。
cc = new customer[100];
for(int i=0;i<cc.length;i++){
cc[i]=new customer(1);
}
虽然编译器没有抱怨我不相信bb = new barber[3];
做了你认为它做的事情。它创建一个足够大的数组,以适应对Barber
对象的3个引用。但它不会创建那些对象,只会创建数组。此时bb
包含{null, null, null}
,因此您需要使用类似的循环来填充bb
个Barber
个对象。
将UpperCamelCase用于类名也是惯例。因此customer
应为Customer
而barber
应为Barber
。同名变量名称应为lowerCamelCase,因此WaitSeat
应为waitSeat
而WaitRoom
应为waitRoom
。
答案 1 :(得分:1)
您将array
初始化与对象初始化混淆。
cc
是array
的{{1}}(请注意,此处大写)。
要访问Customer
的构造函数并获取实例,您需要使用实例填充Customer
。
为简化您的问题,您可以:
array
这将为您的100个 cc = new Customer[100];
Arrays.fill(cc, new Customer(1));
填充100个元素,引用array
Customer
id
的{{1}}个实例。
谨慎提醒,该实例在100个元素中共享。
反过来,如果您修改一个元素,则修改整个数组&#34;,如下所示。
自包含示例
1
<强>输出强>
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);
}
}
}
答案 2 :(得分:0)
cc = new customer [100]
这会创建一个包含cc
的参考100 Customer refs
。
for(int i=0;i>cc.length;i++){
cc[i]=new customer(1);
}
答案 3 :(得分:0)
首先,应始终使用CamelCase编写类 其次,我不认为这是可能的。你可以像这样使用for循环:
cc = new Customer[100];
for(int i = 0; i < 100; i++) {
cc[i] = new Customer(i);
}
答案 4 :(得分:-1)
public class barbershop {
Queue WaitSeat ;
Queue WaitRoom ;
static barber [] bb ;
static customer [] cc;
barbershop(){
WaitSeat = new PriorityQueue(4);
WaitRoom = new PriorityQueue(13);
bb = new barber[3];
for(i=0;i<100;i++)
{
cc[i] = new customer (i);
}
}
}