class Candy{
static{
System.out.println("Loading Candy");
}
}
class Gum{
static{
System.out.println("Loading Gum");
}
}
class Cookie{
static{
System.out.println("Loading Cookie");
}
}
public class SweetShop {
public static void main(String[] args) {
System.out.println("inside man");
new Candy();
System.out.println("After creating Candy");
try{
Class.forName("Gum");
} catch(ClassNotFoundException e){
System.out.println("Couldn't find Gum");
}
System.out.println("After Class.forName(\"Gum\")");
new Cookie();
System.out.println("After creating Cookie");
}
}
运行结果:

为什么用class.forName("Gum");并没有成功加载Gum类?
------解决思路----------------------
Class.forName("Gum")返回的是类,不是对象
Class.forName("Gum").newInstance()这样才是生成对象
静态块static{}这种是在你创建这个类的第一个对象时初始化
new Candy();,new Cookie();这两个类都生成对象了