对象方法不是只能通过引用变量.方法使用吗?(不是静态),那么
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()返回的是个变量?不是地址吗?
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()返回的是个变量?不是地址吗?
new A().a
可以认为等同与
A temp = new A();
temp.a
只是后面用了两句代码,给生成的对象赋了个temp的名称,以便以后使用
temp.a//这里的temp也是个地址啊,这里的temp并不是一个对象,也是一个指向对象的地址啊
所以直接写成new A().a也是一样的。
class A{
int a;
public A() {
a = 1;
}
}没有修饰符 而且 里面的a 也没有修饰符缺省的在同一个包内是可见的。
所以你能再 上面那个类的main方法中 new A() ,而且还可以 new A().a 这么写
直接 .a 是不推荐的
http://readonly.iteye.com/blog/265831