【发布时间】:2012-08-09 09:40:46
【问题描述】:
我对 Java 比较陌生,我正在为在线游戏 Minecraft 编写扩展程序/插件。
我最近开始了“更大”的项目,这些项目需要更多的课程来保持整洁。 我仍在尝试完全了解构造函数的工作原理,但最近的尝试导致 Stack Overflow(一个构造函数调用另一个构造函数,在循环中)。
以我为例,我有两个类,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(){}
}
我知道问题出在哪里,只是不知道合适的解决方案,这适用于更多类。
另外,如果我有另一个类,main 会连接到 MySQL,另一个类会与之通信,我应该做类似 main.mysql.method 的事情?
对构造函数和实例(“new”关键字)如何工作的简化、易于理解的解释将不胜感激。 提前致谢!
【问题讨论】:
-
为什么在 MySQL 中需要 Main 实例?
-
在主类中,有一个方法可以提醒特定用户注意错误,所以我必须调用 main.mysqlErrors
标签: java class constructor instances