I'm relatively new to Java and I'm coding extensions/plugins for online game Minecraft.
I've recently started "bigger" projects which require more classes to preserve neatness. I am still trying to fully understand how constructors work, but most recent try resulted into Stack Overflow (one constructor calling another, in loop).
In my case, for example, I have two classes, Main
and MySQL
.
Main class initializes plugin, MySQL class contacts database and returns data to any class which calls it.
Example problematic code:
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(){}
}
I know what the problem is, I just don't know proper solution, which would work with even more classes.
Also if I would have another class, main would connect to MySQL, another class would communicate with it, I should do something like main.mysql.method ?
Simplified, easy to understand explanation on how constructors and instances ("new" keyword) work would be much appreciated. Thanks in advance !