在类Myclass
中,类Help
作为对象加载,但随后又在Help
类本身中加载。是不是Help
类加载了两次?这样做的原因是什么?
例如:
public class Myclass {
int i;
Object help;
public Myclass() {
help = new Help(); /// help class loaded
}
private Object doSomething(int h) {
Help.getHelp(h);
}
}
帮助课程:
public class Help(){
Object returnhelp;
int h;
public Help() {
int h=3;
}
public Help getHelp(int y) {
return new Help(y); ///// Help class loaded again ????
}
private add(int y) {
h=+y;
return h;
}
}
答案 0 :(得分:5)
首先,您将类加载与类实例化混淆。
此外,您的代码无法编译,因为为了做到这一点
Help.getHelp(h)
getHelp(int)
必须是静态的:
public static Help getHelp(int y)
在这种情况下,您没有实例化两次。使用静态方法实例化给定类的对象是一个常见的过程,它被称为factory。
答案 1 :(得分:1)
Help
类加载一次。但是,您可能正在创建更多的实例。一个在Myclass
构造函数中创建,另一个在调用Help.getHelp()
方法时创建。
答案 2 :(得分:1)
该类未加载两次,但两次实例化为对象。
Here是Java教程的高级视图。