Можете ли вы сделать массив экземпляров классов?
Можно ли сделать массив экземпляров классов?
Ниже приведен основной пример моей попытки. Сосредоточиться на методе "Генерировать".
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);
}
}
И на всякий случай ниже приведен код для класса, который создается.
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;
}
}
2 ответа
Решение
Порядок и объявление типа неверны
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};