package com.javarush.task.task03.task0307;
/*
Привет Starcraft!
*/
public class Solution {
public static void main(String[] args) {
Zerg[] zerg = new Zerg[];
for (int a = 0; a < 10; a++) {
zerg[a] = new Zerg[a];
zerg[a].name = "zerg" + a;
}
Подскажите плз, в чем ошибка? :
com/javarush/task/task03/task0307/Solution.java:9: error: array dimension missing
Zerg[] zerg = new Zerg[];
^
- вроде бы понимаю что пишет, но уже как только код не переиначивал, тогда вылазят другие ошибки....или что-то пропустил, или что-то не правильно делаю...хочется всё же разобраться, т.к. насколько я понимаю при работе с массивами подобные конструкции ой как пригодятся))DoBBi
3 уровень
Подскажите плз, в чем ошибка?
Решен
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Zaur Vagabov
21 июня 2018, 20:59
А где в задаче сказано про массив объектов? Там просто сказано создать столько то объектов и дать им имена
0
DoBBi
21 июня 2018, 21:03
Ну нет ведь критериев четких как это сделать....можно конечно каждый объект ручками прописать....но а что делать когда их будет тысяча? интересно же разобраться)
0
Сергеев ВикторMaster
21 июня 2018, 20:05полезный
при создании массива надо указать его размер
+2
DoBBi
21 июня 2018, 20:53
Но если я правильно понимаю, что значит "указать размер массива" то получается вот что:
И уже другая ошибка:
constructor Zerg in class com.javarush.task.task03.task0307.Solution.Zerg cannot be applied to given types; required: no arguments found: int reason: actual and formal argument lists differ in length:
Solution.java, line: 11, column: 23
Компилятор:
com/javarush/task/task03/task0307/Solution.java:11: error: constructor Zerg in class com.javarush.task.task03.task0307.Solution.Zerg cannot be applied to given types;
zerg[a] = new Zerg(a);
^
required: no arguments
found: int
reason: actual and formal argument lists differ in length
com/javarush/task/task03/task0307/Solution.java:16: error: constructor Protoss in class com.javarush.task.task03.task0307.Solution.Protoss cannot be applied to given types;
- и вот тут уже не понимаю что именно не так...пробовал отдельно вводить int, но как-то без толку....в общем не понимаю что не так с аргументом) 0
Сергеев ВикторMaster
21 июня 2018, 21:05
на самом деле компилятор вам все сказал, если с английским плохо, то используйте переводчик.
error: конструктор Zerg в классе com.javarush.task.task03.task0307.Solution.Zerg не может применяться к заданным типам;
причина: фактические и формальные списки аргументов различаются по длине com / javarush / task / task03 / task0307 / Solution.java: 16: ошибка: конструктор Protoss в классе com.javarush.task.task03.task0307.Solution.Protoss не может применяться к заданным типам;
нет конструктора, которой принимает int
+1
Макс
21 июня 2018, 21:06полезный
Я так понимаю проблема в new Zerg(a);
При использовании new вызывается конструктор. В твоем примере ты в этот конструктор передаешь параметр - а. Но в нашем случае у класса Zerg мы не создавали конструктор, принимающего параметр, есть только конструктор по-умолчанию, т.е. без параметров.
Поэтому оно и ругается.
Правильно будет new Zerg();
+2
DoBBi
21 июня 2018, 21:12
Да с английским то все впорядке, просто для меня пока всё, что говорит компилятор выглядит как полная тарабарщина...приходится ещё переводить на человеческий язык))
0
Сергеев ВикторMaster
21 июня 2018, 21:15
вы как минимум на 1 шаг круче меня =) я в основном переводчиком пользуюсь. Если с английским хорошо, то пробуйте гуглить подсказки, чем раньше начнете тем лучше.
0
DoBBi
21 июня 2018, 21:41
А можно, если не трудно пример, как бы выглядел такой конструктор принимающий параметр?) (и если не затруднит, то с кратеньким пояснением что собственно гипотетически мы могли бы там ещё прописать - буду признателен)
0
Макс
21 июня 2018, 22:24
Ну вот у нас есть класс Zerg у которого есть поле name.
Можно внутри класса создать конструктор, который будет принимать параметр и присваивать его внутреннему полю:
И тогда при создании зерга можно сразу указать его имя:
Zerg zerg1 = new Zerg("Абатур");
Zerg zerg2 = new Zerg("Загара");
0