你能制作一个 class 个实例的数组吗?

Can you make an array of class instances?

是否可以创建一个包含 class 个实例的数组?

下面是我尝试的一个基本示例。关注方法 "Generate".

import java.util.Scanner;

public class Main {

    public static Scanner Scan = new Scanner(System.in);

    public static void main(String[] args) {

        System.out.println("What is your name?");
        String name = Scan.nextLine();
        Player player1 = new Player(name);
        player1.getStats();
    }

    public static void generate() {

        String[] weaponShopInv = {rustySword, ironSword, sharpSword}

        Weapon rustySword = new Weapon("Rusty Sword","Melee","Short Sword", 5, 30);
        Weapon ironSword = new Weapon("Iron Sword","Melee","Short Sword", 10, 100);
        Weapon sharpIronSword = new Weapon("Sharp Iron Sword","Melee","Short Sword", 15, 250);
    }

}

为了以防万一,下面是正在实例化的 class 的代码。

public class Weapon {

    String name;
    String type;
    String style;
    int damage;
    int price;

    public Weapon(String e, String a, String b, int c, int d) {
        type = a;
        style = b;
        damage = c;
        price = d;
        name = e;
    }
}

初始化自定义数组就像初始化原始类型数组一样。你在这里几乎是正确的,只有两个错误。首先,您不能在数组 初始化之前 添加对象。其次,你必须将它们存储在武器数组中,而不是字符串数组中:

    Weapon rustySword = new Weapon("Rusty Sword","Melee","Short Sword", 5, 30);
    Weapon ironSword = new Weapon("Iron Sword","Melee","Short Sword", 10, 100);
    Weapon sharpIronSword = new Weapon("Sharp Iron Sword","Melee","Short Sword", 15, 250);
    Weapon[] weaponShopInv = {rustySword, ironSword, sharpSword};

顺序和类型声明不正确

Weapon rustySword = new Weapon("Rusty Sword","Melee","Short Sword", 5, 30);
Weapon ironSword = new Weapon("Iron Sword","Melee","Short Sword", 10, 100);
Weapon sharpIronSword = new Weapon("Sharp Iron Sword","Melee","Short Sword", 15, 250);

Weapon[] weaponShopInv = {rustySword, ironSword, sharpSword}