gpt4 book ai didi

java - “使用静态数组”...这是什么意思?

转载 作者:行者123 更新时间:2023-11-30 05:09:21 25 4
gpt4 key购买 nike

我知道什么是静态数组以及如何在 Java 中使用它,但是我的教授给我们分配了一个程序,对于我们必须创建的众多类之一,他要求我们在这样的情况下“使用静态数组”多个对象将其数据存储在那里的方式。

例如,如果对象是车库,则每个车库实例会将其数据存储在 100x3 静态数组中:

 1, honda, four-door
3, toyota, two-door
1, bicycle, -1
1, ford, pickup
2, ford, fiesta
3, chevy, two-door
3, bicycle, -1

-1 表示每个车库的末端。

这是一个糟糕的例子,但你明白了。

所以,我认为他想要的是这样的:

在演示类(这是主要的)中,我将声明一个我用静态数组创建的类的实例:

      PublicAccessArray p1 = new  PublicAccessArray();

然后该类(class)开始如下:

      public class PublicAccessArray {

public static int[][] accessArray;

public static void PublicAccessArray()
{
accessArray = new int[100][3];
...

然后我的类将创建使用静态数组的对象,如下所示:

      public class ClassThatUsesTheStaticArray {
public void ClassThatUsesTheStaticArray (PublicAccessArray array1)
{...

然后回到演示/主类,我将使用以下方法实例化这些对象:

      ClassThatUsesTheStaticArray  c1= new ClassThatUsesTheStaticArray (p1);

我认为这就是他的意思,而且我知道静态数组应该类似于我给出的示例(尽管它使用数字作为数据/元素)。

我知道他希望我们实例化演示/主类中的 ClassThatUsesTheStaticArray 对象,而我认为做到这一点的唯一方法是将 p1 数组传递给它。

我正在做的事情看起来是正确的吗?我通常更容易进行实际编码,而不是弄清楚我的教授实际上要求我们做什么,所以我想知道这听起来是否像是“使用静态数组”的一种方法。

最佳答案

我不认为你走的是正确的道路。首先,您不能将“honda”或“toyota”存储在 int 数组中。所以你需要字符串数组。第一列看起来像索引,因此您根本不必将其存储在数组中。

第二,例子还不够OO。我建议您执行以下操作。

创建车辆类:

public abstract class Vehicle {
private String name;
// getters, setters, constructor...
}

然后创建类 Car 和 Bicycle 来扩展 Vehicle。这些类可以包含其他数据:

public class Car extends Vehicle {
public static enum Type {PICKUP, }; // add here other types
private String model;
private int doorsCount;
private Type type;
}

现在创建车库类:

public class Garage {
private List<Vehicle> vehicles;
// other fields and methods relevant for garage.
}

现在是创建车库静态数组的时候了:

private static Garage[] garages = new Garage[100];

您可以使用静态初始化程序填充它(我假设这里存在我在解释中没有提到的方便的构造函数):

static {
Vehicle honda = new Car("honda", 4);
Vehicle toyota = new Car("toyota", 2);
Vehicle bicycle = new Bicycle("bicycle");
garaghes[0] = new Garage("First", new Vehicle[] {honda, toyota, bicycle});

Vehicle fiesta = new Car("ford", "fiesta");
Vehicle pickup = new Car("ford", Car.Type.PICKUP);
garaghes[1] = new Garage("Second", new Vehicle[] {fiesta, pickup});
}

我相信你的教授会满意的。祝你好运!

关于java - “使用静态数组”...这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4002945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com