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

关于对象的菜鸟问题
在Java中,this通常指当前对象。
这句话我都背下来了,但是当前对象指的是哪个对象呢。
据我的理解,对象是类进行实例化的结果,例如
class   point
{
              point   p=new   point();
}
那么p就是一个对象,我不知道我的理解对不对。
如果对的话,那对象怎么会有方法呢,又怎么会有成员呢。
不是只有类才有方法和变量么,什么是成员呢,晕ing。

我刚学一周java,大家随便BT,但是希望把问题答了再。。。
我接受鄙视。。。

------解决方案--------------------
可以这么说
类是模板,它定义了数据类型
new出来的叫类实例,它是参照模板生产出来的东西,它存储了符合类里面定义的数据类型的实际值,而this就是可以指向这些值的标签/地址/引用/指针。
------解决方案--------------------
一个运行中的JAVA程序,可以认为它在任何一个时刻都是在执行某个函数,“当前对象”就是针对正在执行的这个“当前函数”而言的。当前函数是从哪个对象上调用的,那么“当前对象”指的就是谁。

比如对于函数调用:
a.f();
那么当f执行的时候,里面的this指的就是a。
假如再过一段时间,
b.f();
也就是f又从b上被调用了,那么那个时候的“当前对象”就是b。

另外,静态(static)函数可以从类名上调用,而不必非得先创建类的对象再调用,因此,静态函数是没有this的。你如果在静态函数中访问“this”,编译会报错的。
------解决方案--------------------
你在point类中写point p=new point()不是当前对象,而只是类里的一个成员,再类中对于本类对象的引用才是this,this可以引用你的类中的各个成员,方法。另外说一下,类名最好首字母大写,p不是对象,是对象引用名,new point()才是生成的对象