执行《Thingking in java》中的一个程序发现结果通书上的不同,大侠看看怎么回事?
执行《Thingking in java》中的一个程序发现结果通书上的不同,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 Class对象使用1
{
public static void main(String[] args) throws ClassNotFoundException
{
System.out.println("inside main");
new Candy();//因为有static语言 所以在第一次加载的时候会执行里面代码
Class c = null;
try{
c = Class.forName("Gum");
}catch (ClassNotFoundException e)
{
System.out.println("can not find Gum");
}
new Cookie();
}
执行的结果是inside main
loading Candy
can not find
loading Cookie
而书上的结果是
inside main
loading Candy
loading Gum
loading Cookie
这是什么情况啊? 还有Class在实际编程中用的多吗?感觉挺难理解的!
--------------------编程问答-------------------- 此程序在书中哪一页 --------------------编程问答-------------------- 第三版的272页10.1.1Class对象 这个章看的头有点晕了 --------------------编程问答-------------------- 因为书上的例子是没有包(pakage)的,而你可能放在了某个包中,比如package test;则要在类名前面加上包名才完整,对应c = Class.forName("Gum");改为c = Class.forName("test.Gum");
Class 和 reflect 还是比较有用的。 --------------------编程问答-------------------- 恩 可以了!弄的我郁闷了一下午,谢谢了哈!
补充:Java , Java SE