日期:2014-05-20  浏览次数:20697 次

对象方法的一点问题0 0(貌似钻牛角尖了)
对象方法不是只能通过引用变量.方法使用吗?(不是静态),那么
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()返回的是个变量?不是地址吗?

------解决方案--------------------
创建了一个A的对象,用它去访问他的成员变量,没有什么问题啊
------解决方案--------------------
楼主
new A().a
可以认为等同与
A temp = new A();
temp.a
只是后面用了两句代码,给生成的对象赋了个temp的名称,以便以后使用
------解决方案--------------------
不是钻牛角尖,这只是基础问题,楼主该补补语法知识了
------解决方案--------------------
只能说LZ很想知其然知其所以然。。。

刚学那会老是这样,后来慢慢的就是会用而已,没以前那么有冲劲了!

加油!
------解决方案--------------------
A temp = new A();
temp.a//这里的temp也是个地址啊,这里的temp并不是一个对象,也是一个指向对象的地址啊
所以直接写成new A().a也是一样的。
------解决方案--------------------
里面的这个类
class A{
int a;
public A() {
a = 1;
}
}

没有修饰符 而且 里面的a 也没有修饰符

缺省的在同一个包内是可见的。
所以你能再 上面那个类的main方法中 new A() ,而且还可以 new A().a 这么写
直接 .a 是不推荐的
------解决方案--------------------
new A()相当于创建了一个匿名的变量