对象方法不是只能通过引用变量.方法使用吗?(不是静态),那么
package test;public class Rar {
public static void main(String[] args) {
 System.out.println(new A().a);
}
}
class A{
int a;
public A() {
a = 1;
}
}
为什么不报错呢?newA()返回的是个变量?不是地址吗?

解决方案 »

  1.   

    楼主
    new A().a
    可以认为等同与
    A temp = new A();
    temp.a
    只是后面用了两句代码,给生成的对象赋了个temp的名称,以便以后使用
      

  2.   

    A temp = new A();
    temp.a//这里的temp也是个地址啊,这里的temp并不是一个对象,也是一个指向对象的地址啊
    所以直接写成new A().a也是一样的。
      

  3.   

    推荐《疯狂java讲义》,很基础很基础的一本书!我看到第七章了,前面很好!!
      

  4.   

    里面的这个类
    class A{
    int a;
    public A() {
    a = 1;
    }
    }没有修饰符   而且 里面的a 也没有修饰符缺省的在同一个包内是可见的。
    所以你能再  上面那个类的main方法中 new A() ,而且还可以 new A().a  这么写
    直接 .a 是不推荐的
      

  5.   

    new A()相当于创建了一个匿名的变量
      

  6.   

    屁,远离李刚的书:
    http://readonly.iteye.com/blog/265831
      

  7.   

    new A()返回是个变量?不可能?new A().a才是个变量。