私は Java に比較的慣れていないので、オンライン ゲーム Minecraft の拡張機能/プラグインをコーディングしています。
私は最近、より多くのクラスを必要とする「より大きな」プロジェクトを開始しました。私はまだコンストラクターがどのように機能するかを完全に理解しようとしていますが、最近の試みではスタック オーバーフロー (あるコンストラクターがループ内で別のコンストラクターを呼び出す) が発生しました。
たとえば、私の場合、2 つのクラスが Main
ありMySQL
ます。
メイン クラスはプラグインを初期化し、MySQL クラスはデータベースに接続し、それを呼び出した任意のクラスにデータを返します。
問題のあるコードの例:
Main.java
class Main extends JavaPlugin {
private final MySQL mysql = new MySQL();
//Method which is called first
void onEnable(){
//Just an example of initializing
mysql.init();
mysql.open();
}
}
MySQL.java
class MySQL {
private final Main main = new Main();
void init(){}
void open(){}
}
問題が何であるかはわかっていますが、適切な解決策がわかりません。これは、さらに多くのクラスで機能します。
また、別のクラスがあり、メインがMySQLに接続し、別のクラスがそれと通信する場合、 main.mysql.methodのようなことをする必要がありますか?
コンストラクターとインスタンス (「新しい」キーワード) がどのように機能するかについての単純でわかりやすい説明をいただければ幸いです。前もって感謝します !