Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将不同类型的对象存储在一个数组中以形成一个对象数组_Java_Arrays - Fatal编程技术网

Java 将不同类型的对象存储在一个数组中以形成一个对象数组

Java 将不同类型的对象存储在一个数组中以形成一个对象数组,java,arrays,Java,Arrays,我正在制作一个游戏,我想制作一个名为“库存”的数组,在这个数组中,我希望能够存储不同类别的不同类型的对象(如武器、瓶子、食品) 我想知道这是怎么可能的。。。 arraylist只能生成一种类型的数组…我也试过了 提前感谢。让您的对象扩展一个超类,如Item并创建一个Item[]数组。让您的对象扩展一个超类,如Item并创建一个Item[]数组。让您的对象扩展一个超类,如Item并创建一个Item[]array.让您的对象扩展一个类似于Item的超类,并创建一个Item[]数组。您必须使用一个通用

我正在制作一个游戏,我想制作一个名为“库存”的数组,在这个数组中,我希望能够存储不同类别的不同类型的对象(如武器、瓶子、食品)

我想知道这是怎么可能的。。。 arraylist只能生成一种类型的数组…我也试过了


提前感谢。

让您的对象扩展一个超类,如
Item
并创建一个
Item[]
数组。

让您的对象扩展一个超类,如
Item
并创建一个
Item[]
数组。

让您的对象扩展一个超类,如
Item
并创建一个
Item[]
array.

让您的对象扩展一个类似于
Item
的超类,并创建一个
Item[]
数组。

您必须使用一个通用超类/接口的数组

最简单的方法是使用对象数组(Object[]),但这包括了添加任何内容的风险

最好是创建一个所有对象都要实现的接口——即使它必须是一个标记接口——从而限制对象的种类。
当然,如果这些对象有共同的功能(例如“权重”之类的属性或“drawObject”之类的方法),那么接口实际上除了标签之外还有一些含义

您必须使用共同超类/接口的数组

最简单的方法是使用对象数组(Object[]),但这包括了添加任何内容的风险

最好是创建一个所有对象都要实现的接口——即使它必须是一个标记接口——从而限制对象的种类。
当然,如果这些对象有共同的功能(例如“权重”之类的属性或“drawObject”之类的方法),那么接口实际上除了标签之外还有一些含义

您必须使用共同超类/接口的数组

最简单的方法是使用对象数组(Object[]),但这包括了添加任何内容的风险

最好是创建一个所有对象都要实现的接口——即使它必须是一个标记接口——从而限制对象的种类。
当然,如果这些对象有共同的功能(例如“权重”之类的属性或“drawObject”之类的方法),那么接口实际上除了标签之外还有一些含义

您必须使用共同超类/接口的数组

最简单的方法是使用对象数组(Object[]),但这包括了添加任何内容的风险

最好是创建一个所有对象都要实现的接口——即使它必须是一个标记接口——从而限制对象的种类。
当然,如果这些对象有共同的功能(例如“权重”之类的属性或“drawObject”之类的方法),那么该接口实际上除了标记之外还有一些含义

让您所有的项类实现相同的接口“项”。然后使数组列表的类型为

或者,如果项目具有公共数据(如价格),则可以让它们都扩展同一个类

扩展同一抽象类的示例:

public abstract class Item {
    private int value;

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }
}

public class Weapon extends Item {
    private int damage;

    public Weapon(int value, int damage) {
        this.setValue(value);
        this.damage = damage;
    }
}
ArrayList
声明:

List<Item> inventory = new ArrayList<Item>();
inventory.add(new Weapon(10, 25));
List inventory=new ArrayList();
增加(新武器(10、25));

让所有项目类实现相同的接口“项目”。然后使数组列表的类型为

或者,如果项目具有公共数据(如价格),则可以让它们都扩展同一个类

扩展同一抽象类的示例:

public abstract class Item {
    private int value;

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }
}

public class Weapon extends Item {
    private int damage;

    public Weapon(int value, int damage) {
        this.setValue(value);
        this.damage = damage;
    }
}
ArrayList
声明:

List<Item> inventory = new ArrayList<Item>();
inventory.add(new Weapon(10, 25));
List inventory=new ArrayList();
增加(新武器(10、25));

让所有项目类实现相同的接口“项目”。然后使数组列表的类型为

或者,如果项目具有公共数据(如价格),则可以让它们都扩展同一个类

扩展同一抽象类的示例:

public abstract class Item {
    private int value;

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }
}

public class Weapon extends Item {
    private int damage;

    public Weapon(int value, int damage) {
        this.setValue(value);
        this.damage = damage;
    }
}
ArrayList
声明:

List<Item> inventory = new ArrayList<Item>();
inventory.add(new Weapon(10, 25));
List inventory=new ArrayList();
增加(新武器(10、25));

让所有项目类实现相同的接口“项目”。然后使数组列表的类型为

或者,如果项目具有公共数据(如价格),则可以让它们都扩展同一个类

扩展同一抽象类的示例:

public abstract class Item {
    private int value;

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }
}

public class Weapon extends Item {
    private int damage;

    public Weapon(int value, int damage) {
        this.setValue(value);
        this.damage = damage;
    }
}
ArrayList
声明:

List<Item> inventory = new ArrayList<Item>();
inventory.add(new Weapon(10, 25));
List inventory=new ArrayList();
增加(新武器(10、25));

如果类实现了一个公共接口(或扩展了一个公共类),则可以声明此公共类/接口的数组。否则,对象就是答案。让您的所有项扩展一些定义任何项固有方法的超类(
Item
)。由于每种类型的项目都将扩展
项目
,因此您可以使用
列表
,或
项目[]
来存储所有项目。如果需要,您可以使用
对象[]
。我的建议是创建一个item类,名为
item
。然后您可以让其他类扩展它。然后创建一个
项[]
。如果类实现了一个公共接口(或者扩展了一个公共类),则可以声明此公共类/接口的数组。否则,对象就是答案。让您的所有项扩展一些定义任何项固有方法的超类(
Item
)。由于每种类型的项目都将扩展
项目
,因此您可以使用
列表
,或
项目[]
来存储所有项目。如果需要,您可以使用
对象[]
。我的建议是创建一个item类,名为
item
。然后您可以让其他类扩展它。然后做一个
I