java.lang类是自动加载的,不用IMPORT

解决方案 »

  1.   

    首先,java.lang是JDK自动import的。public final class Class extends Object implements Serializable

         ...
         static Class forName(String className) {
         }
         ...
    }Class本身是final的,不能显式extands。forName是static的,所以你要用的话,直接Class.forName("ClassName");就行了。
      

  2.   

    又有一个问题:
    test t = new test();
    Object t1 = new Object();
    System.out.println("t:getClass() = " + t.getClass());
    System.out.println("t1:getClass() = " + t1.getClass());输出结果:
    t:getClass() = class test
    t1:getClass() = class Object这里是发生了“上溯造型”吗?
      

  3.   

    t是Class test的reference.
    t1是Class Object的reference.你试试:      test t = (test)new Object();
      

  4.   

    和 
       Object obj = (Object)new test();然后打印出来看看。
      

  5.   

    你试试:      test t = (test)new Object();
    ----------------------------------------
    我试了不行呀,另外“reference.”在这里是什么意思?
      

  6.   

    Object obj = (Object)new test();
    这个可以,能解释一下“(Object)new test()”是什么意思吗
      

  7.   

    把new test()返回的值转换成Object类型.
      

  8.   

    上溯造型:
        例如:Object obj = (Object)new test()
        这是安全的,可以把类test看作是Object的一个超集。
        可以写为Object obj = new test();即在java中上溯造型是自动完成的下溯造型:
        test t = (test)new Object();
        需要强制类型转换
      

  9.   

    其实你 仔细读一下《JAVA编程思想》的第12章就明白了```
      

  10.   

    刚才写的下溯造型有错误应该为:
    test t = (test)obj;下溯造型是不安全的,除非保证基类是从子类上溯而来
      

  11.   

    终于明白了上下溯造型
    class test2_a{
        public static void main(String[] arge) {
        Object obj = new test2_a(); //如果换成Object obj = new Object()就不行
        test2_a t = (test2_a)obj;
        System.out.println(obj.getClass());
        System.out.println(t.getClass());
    }
    }
    证实了“下溯造型是不安全的,除非保证基类是从子类上溯而来”
      

  12.   

    《Thinking in Java 3th》要精读、研读,这样你会明白很多东西的。
      

  13.   

    解释一下:    test t = (test)new Object();
    应该是:
        Object obj = new Object();
        test t = (test)obj;原因:
        Object本身不能直接引用,必须创建一个实例。