在java中初始化多个类对象的数组?

在java中初始化多个类对象的数组?,java,Java,我需要使用构造函数来初始化类对象数组,但我无法理解使其工作的语法。我需要包括一个字符串和五个整数。下面是我的代码中一些必要的细节 public Event(String n, int g) { eventNumber=n; guests=g; } 来自“Event.java” 来自“dinneEvent.java”,它扩展了Event.java for(int x=0; x<EVENTS_QUANTITY; ++x) {

我需要使用构造函数来初始化类对象数组,但我无法理解使其工作的语法。我需要包括一个字符串和五个整数。下面是我的代码中一些必要的细节

public Event(String n, int g)
   {
      eventNumber=n;
      guests=g;
   }
来自“Event.java”

来自“dinneEvent.java”,它扩展了Event.java

for(int x=0; x<EVENTS_QUANTITY; ++x)
      {
         String n;
         int g, e, s1, s2, d;
         Scanner input=new Scanner(System.in);
         System.out.print("Enter event number, number of guests, and ID of entree, two sides, and a dessert.");
         nums[x]=input.nextLine();
         ints[x][0]=input.nextInt();
         ints[x][1]=input.nextInt();
         ints[x][2]=input.nextInt();
         ints[x][3]=input.nextInt();
         ints[x][4]=input.nextInt();
      }
      
      DinnerEvent[][] events={ {nums[0], ints[0][0], ints[0][1], ints[0][2], ints[0][3], ints[0][4]},
                           {nums[1], ints[1][0], ints[1][1], ints[1][2], ints[1][3], ints[1][4]},
                           {nums[2], ints[2][0], ints[2][1], ints[2][2], ints[2][3], ints[2][4]},
                           {nums[3], ints[3][0], ints[3][1], ints[3][2], ints[3][3], ints[3][4]}};

for(int x=0;x要创建新的晚餐事件,请调用构造函数并传递所需的参数:

DinnerEvent myDinner = new DinnerEvent("One", 5, 3, 4, 5, 6);
DinnerEvent[] dinners = new DinnerEvent[2]; // Array of two instances

// Initialize instances individually
dinners[0] = new DinnerEvent("First Dinner", 2, 2, 3, 4, 5);
dinners[1] = new DinnerEvent("Second Dinner", 7, 8, 3, 41, 45);
变量
myDinner
现在保存
DinnerEvent
类的一个实例。我传递了一些随机参数,因为我不知道代码的确切语义。我假设大多数参数都使用整数,因为它们对应于菜单项

如果要创建多个
dinneEvent
实例,则需要定义多个变量:

DinnerEvent myFirstDinner = new DinnerEvent("One", 5, 3, 4, 5, 6);
DinnerEvent mySecondDinner = new DinnerEvent("Two", 2, 1, 2, 3, 7);
此外,您还可以创建
dinneEvent
实例的集合,例如作为一个数组。但是,现在,您需要一个循环来迭代该数组中的每个项,以逐个初始化相应的实例:

DinnerEvent[] dinners = new DinnerEvent[4]; // Array of four instances

// Initialize array elements in a loop
for (int i = 0; i < dinners.length; ++i) {
  dinners[i] = new DinnerEvent(i + ". Dinner", 1, 2, 3, 4, 5);
}

现在,您将得到一个由两个元素组成的数组,这两个元素都有各自的属性。您可以调用构造函数两次并传入所需的参数。

要创建新的晚餐事件,请调用构造函数并传入所需的参数:

DinnerEvent myDinner = new DinnerEvent("One", 5, 3, 4, 5, 6);
DinnerEvent[] dinners = new DinnerEvent[2]; // Array of two instances

// Initialize instances individually
dinners[0] = new DinnerEvent("First Dinner", 2, 2, 3, 4, 5);
dinners[1] = new DinnerEvent("Second Dinner", 7, 8, 3, 41, 45);
变量
myDinner
现在保存
DinnerEvent
类的一个实例。我传递了一些随机参数,因为我不知道代码的确切语义。我假设大多数参数都使用整数,因为它们对应于菜单项

如果要创建多个
dinneEvent
实例,则需要定义多个变量:

DinnerEvent myFirstDinner = new DinnerEvent("One", 5, 3, 4, 5, 6);
DinnerEvent mySecondDinner = new DinnerEvent("Two", 2, 1, 2, 3, 7);
此外,您还可以创建
dinneEvent
实例的集合,例如作为一个数组。但是,现在,您需要一个循环来迭代该数组中的每个项,以逐个初始化相应的实例:

DinnerEvent[] dinners = new DinnerEvent[4]; // Array of four instances

// Initialize array elements in a loop
for (int i = 0; i < dinners.length; ++i) {
  dinners[i] = new DinnerEvent(i + ". Dinner", 1, 2, 3, 4, 5);
}

现在,您将得到一个由两个元素组成的数组,两个元素都有各自的属性。您可以调用构造函数两次并传入所需的参数。

假设scanner值作为构造函数的参数,您可以执行以下操作

DinnerEvent[] events = new DinnerEvent[EVENTS_QUANTITY];
for(int x=0; x<EVENTS_QUANTITY; ++x)
      {
         String n;
         int g, e, s1, s2, d;
         Scanner input=new Scanner(System.in);
         System.out.print("Enter event number, number of guests, and ID of entree, two sides, and a dessert.");
         n=input.nextLine();
         g=input.nextInt();
         e=input.nextInt();
         s1=input.nextInt();
         s2=input.nextInt();
         d=input.nextInt();

         events[x] = new DinnerEvent(n, g, e, s1, s2, d);
      }

dinner事件[]事件=新的dinner事件[事件数量];

对于(intx=0;x假设scanner值作为构造函数的参数,您可以这样做

DinnerEvent[] events = new DinnerEvent[EVENTS_QUANTITY];
for(int x=0; x<EVENTS_QUANTITY; ++x)
      {
         String n;
         int g, e, s1, s2, d;
         Scanner input=new Scanner(System.in);
         System.out.print("Enter event number, number of guests, and ID of entree, two sides, and a dessert.");
         n=input.nextLine();
         g=input.nextInt();
         e=input.nextInt();
         s1=input.nextInt();
         s2=input.nextInt();
         d=input.nextInt();

         events[x] = new DinnerEvent(n, g, e, s1, s2, d);
      }

dinner事件[]事件=新的dinner事件[事件数量];

对于(int x=0;x),在开始构建第一个事件之前,不必收集所有数据

Scanner input=new Scanner(System.in);
DinnerEvent[] dinnerEvents = new DinnerEvent[EVENTS_QUANTITY];
for(int index=0; index<dinnerEvents.length; ++index) {
  System.out.print("Enter event number, number of guests, and ID of entree, two sides, and a dessert.");
  dinnerEvents[x] = new DinnerEvent(
       input.next(),
       input.nextInt(),
       input.nextInt(),
       input.nextInt(),
       input.nextInt(),
       input.nextInt());
}
扫描仪输入=新扫描仪(System.in);
晚餐事件[]晚餐事件=新的晚餐事件[事件数量];

对于(int index=0;index,您不必在开始构建第一个事件之前收集所有数据

Scanner input=new Scanner(System.in);
DinnerEvent[] dinnerEvents = new DinnerEvent[EVENTS_QUANTITY];
for(int index=0; index<dinnerEvents.length; ++index) {
  System.out.print("Enter event number, number of guests, and ID of entree, two sides, and a dessert.");
  dinnerEvents[x] = new DinnerEvent(
       input.next(),
       input.nextInt(),
       input.nextInt(),
       input.nextInt(),
       input.nextInt(),
       input.nextInt());
}
扫描仪输入=新扫描仪(System.in);
晚餐事件[]晚餐事件=新的晚餐事件[事件数量];

对于(int index=0;index您可以澄清您的最终结果应该是什么吗?为什么
事件
数组有两个维度?很可能您只需要一个维度。每个事件的单个参数需要传递给构造函数。它们不会在数组中形成第二个维度。您可以澄清您的最终结果是什么吗结果应该是?为什么
事件
数组有两个维度?很可能您只需要一个维度。每个事件的单个参数需要传递给构造函数。它们不会在数组中形成第二个维度。