现在我发现我迷糊了1:对象是否实例化后才能调用方法如: 类a
1)a obj = new a(); obj.method();
2)a obj; obj.method();
2:对象被从另一个package中引入是否要先实例化后才能调用方法,还是只要建立一个对象就可以调用方法了import package.a;
1)a obj; obj.method();
2)a obj = new a(); obj.method();3:有一种情况,对象没有被申明,但是突然在某个地方用new + 构造函数(参数行)的方法实例化,这种语法是否正确如: 有个类a 
    并没有建立对象-- a obj;而直接在某处以  --  new a()实例并使用

解决方案 »

  1.   

    Question1 &2
    You must create an object before you use it.
    An object declaration is not an creation.Question 3
    you can create an object but do not bind any reference to it.
      

  2.   

    1。非静态方法 就必须实例化 才能调用所以 正确的是 1)我觉得你把 引用 与 实例/对象 的概念分清楚 否则对于多态性的东西会很模糊
    A obj=null; //这样只是声明一个引用(你可以把它看作一个指向null的指针/我喜欢叫引指)而没有引用任何实例 
    obj=new A();//这样这个引用才指向 一个实例 而 new A()才是建立实例的过程 即 实例化2。 import 只是让一个包中的类 对于本文件可见 与是否实例化 无关。3。见 问题1的答案
      

  3.   

    补充一点:
    A obj = new A();//此时动态分配内存空间
    A obj;//并没有动态分配内存空间
      

  4.   

    假如有类ClassA里面是静态方法,即 static 方法的,可以无需实例化就可直接引用,如ClassA.method1();就行了但如果是非静态方法,即 没有 static 修饰的方法,需要先实例化以分配内存空间才可引用,如
    ClassA obj = new ClassA();
    obj.method();或
    (new ClassA()).method()效果是一样的
      

  5.   

    1.所以对象必须实例化后才能使用(*)
    2.非static的方法,也new一个实例才能调用
      static方法直接调用
    3.可以new一个实例直接使用(不要变量)
      

  6.   

    <a href="http://www.eimhe.com/bbs/get.php?id=101448"><img src="http://www.eimhe.com/bbs/images/adv.gif"></a>