Я надеюсь, что кто-то может помочь мне с этими двумя значениями, которые заставили меня застрять в проекте. У меня есть два класса, и этот первый генерирует 2D-массив со случайными значениями.Реализация параметров объекта в других классах
import java.util.concurrent.ThreadLocalRandom;
public class Guitar {
private int strings;
private int chords;
public Guitar(int mstrings, int mchords) {
this.strings = mstrings;
this.chords = mchords;
}
private double[][] song = new double[strings][chords];
public void generateSong() {
for (int i = 0; i < song.length; i++) {
for (int j = 0; j < song[i].length; j++) {
song[i][j] = ThreadLocalRandom.current().nextDouble(27.5, 4186);
System.out.printf(" %.2f",song[i][j]);
}
System.out.println();
}
}
}
Количество строк и столбцов определяется аргументами командной строки. args [0] - количество строк, args [1] - количество столбцов. Я обратил их в целое переменные в главном классе метода
public class Songwriter {
public static void main(String[] args) {
System.out.println("Guitar(): Generated new guitar with " + args[0] + " strings. Song length is " + args[1] + " chords.");
String args0 = args[0];
int strings = Integer.parseInt(args0);
String args1 = args[1];
int chords = Integer.parseInt(args1);
Guitar guitarObj1 = new Guitar(strings, chords);
guitarObj1.generateSong();
}
}
Моя проблема заключается в прохождении Int переменных аргументов командной строки, чтобы сделать 2D массив соответствующего размера. Я знаю, что мой код не совсем ошибочен b/c, когда я устанавливаю переменные строк и аккордов равными 3 и 4 или что-то еще в самом классе Guitar, таблица отлично печатается.
Извините, если я, кажется, невежественный. Мой класс просто рассмотрел первую главу о объектно-ориентированном программировании, и я еще не понял основные принципы.
Так что на самом деле происходит? Есть ли какая-то проблема с выходом? Это крушение? – Makoto
Какая ошибка вы столкнулись – Alok
Это не сбой, но единственным выходом является system.out.print в первой строке основного. Я считаю, что это потому, что переменные строк и аккордов по умолчанию равны 0, делая массив 0x0, и я не могу изменить их значения. – seventeenhundred