私は、誰かが私がプロジェクトに取り掛かっているこれらの2つの値で私を助けてくれることを願っています。私は2つのクラスを持ち、この最初のクラスはランダムな値を持つ2次元配列を生成します。他のクラスにオブジェクトパラメータを実装する
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]は列数です。私は私の問題は、2次元配列に対応するサイズを作るために、コマンドライン引数のint型の変数を渡すことにある
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();
}
}
mainメソッドクラスの変数をintにそれらを変換します。私は私のコードが完全に間違っていないことを知っている/私は3と4またはGuitarクラス自体の文字列とコードの変数を設定すると、テーブルは正常に印刷されます。
私は無知と思われる場合は申し訳ありません。私のクラスでは、オブジェクト指向プログラミングの最初の章を説明しましたが、私はまだファンダメンタルズを解消していません。
を変更することができないよだから何が実際に起こりますか?出力に問題がありますか?それはクラッシュしますか? – Makoto
あなたが直面しているエラー – Alok
クラッシュはしませんが、唯一の出力はメインの最初の行にあるsystem.out.printです。私は文字列とコードの変数がデフォルトで0になり、配列0x0が作成され、その値を変更できないと考えています。 – seventeenhundred