[解決済み] Javaでオブジェクトの配列を初期化する方法
2023-06-23 06:26:39
質問
BlackJackゲーム用にプレイヤーオブジェクトの配列を初期化したい。intの配列や文字列の配列のようなプリミティブなオブジェクトを初期化する様々な方法についてたくさん読みましたが、私がここでやろうとしていること(下記参照)にその概念を取り入れることができません。初期化されたプレイヤー・オブジェクトの配列を返したいのです。作成するプレイヤー・オブジェクトの数は、ユーザーに指示する整数値です。コンストラクタが整数値を受け取り、それに応じてプレーヤーに名前を付け、プレーヤー・オブジェクトのいくつかのメンバ変数を初期化することができると考えていました。私は近いと思うが、まだかなり混乱もしている。
static class Player
{
private String Name;
private int handValue;
private boolean BlackJack;
private TheCard[] Hand;
public Player(int i)
{
if (i == 0)
{
this.Name = "Dealer";
}
else
{
this.Name = "Player_" + String.valueOf(i);
}
this.handValue = 0;
this.BlackJack = false;
this.Hand = new TheCard[2];
}
}
private static Player[] InitializePlayers(int PlayerCount)
{ //The line below never completes after applying the suggested change
Player[PlayerCount] thePlayers;
for(int i = 0; i < PlayerCount + 1; i++)
{
thePlayers[i] = new Player(i);
}
return thePlayers;
}
EDIT - アップデイト。 私はあなたの提案を理解したように、これを変更した後、私が取得しているものは次のとおりです。
Thread [main] (Suspended)
ClassNotFoundException(Throwable).<init>(String, Throwable) line: 217
ClassNotFoundException(Exception).<init>(String, Throwable) line: not available
ClassNotFoundException.<init>(String) line: not available
URLClassLoader$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Launcher$ExtClassLoader(URLClassLoader).findClass(String) line: not available
Launcher$ExtClassLoader.findClass(String) line: not available
Launcher$ExtClassLoader(ClassLoader).loadClass(String, boolean) line: not available
Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: not available
Launcher$AppClassLoader.loadClass(String, boolean) line: not available
Launcher$AppClassLoader(ClassLoader).loadClass(String) line: not available
BlackJackCardGame.InitializePlayers(int) line: 30
BlackJackCardGame.main(String[]) line: 249
どのように解決するのですか?
ほとんど問題ありません。ただ、あります。
Player[] thePlayers = new Player[playerCount + 1];
そしてループをさせる。
for(int i = 0; i < thePlayers.length; i++)
また、Javaの慣例として、メソッドや変数の名前は小文字で始めることになっていることに注意してください。
更新:メソッドをクラス本体の中に入れてください。
関連
-
FindBugの使用概要
-
Java Runtime Environmentを継続するためのメモリが不足しています。
-
アクセス制限の解決方法: ---- in Java
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
無効なメソッド宣言
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
Javaジェネリックを1つの記事で
-
セミコロン期待値エラー解決
-
Javaがテキストファイルを読み込む
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。