A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 涂金哲   /  2012-6-20 10:24  /  4700 人查看  /  24 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 rslheima 于 2012-6-20 20:27 编辑

以下为个人总结及个人理解如有错误请更正!

首先了解程序使用对象的过程:

程序使用对象通常包括以下四步:
例子:

一、声明对象
StaticTest staticT ;
确定对象的 名称 ,并指明该对象所属的类
二、创建对象
staticT= new   StaticTest();
通过 new 关键字,为对象分配内存,使对象成为类的实例。
三、使用对象
staticT.show()   

创建后这个对象就拥有了自己的数据成员 成员函数 ,便可以使用。
四、  撤销  



其次 了解  static方法  :
static方法是属于 整个类 的,他在内存中的 代码段 将随着类的定义而分配和装载  。


第三
static的方法是属于某个对象的方法,当这个对象创建(new时)时,在对象的内存中就拥有这个方法的专用代码段。

再看:由于StaticTest staticT=null;只是确定对象的名字而已,并没有为该对象分配内存,所以该对象就没有自己的]数据成员成员函数(也就是没有得到show() ),所以不能调用。
综合看来,并不是类在调用,而是对象在调用。

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
因为方法method是静态方法,静态方法调用的时候可以不创建类对象,直接StaticTest.method()调用就可以。然而show()是普通的方法,需要创建类对象,此时 StaticTest staticT = null;是空对象,肯定是报空指针异常。
回复 使用道具 举报
rslheima 发表于 2012-6-20 19:54
以下为个人总结及个人理解如有错误请更正!
首先了解程序使用对象的过程:

"二、创建对象     staticT= new   StaticTest();                通过 new 关键字,为对象分配内存,使对象成为类的实例。"

在第二步中,并没有创建对象,只声明了对象, 对象没有创建成功,应该是类在调用吧.
回复 使用道具 举报
空指针出现的原因应该是,你上面只有staticTest staticT=null,只有地址,没有内存,肯定会空的。加个new的话应该就好了。
回复 使用道具 举报
rslheima 发表于 2012-6-20 19:54
以下为个人总结及个人理解如有错误请更正!
首先了解程序使用对象的过程:

综合看来,并不是类在调用,而是对象在调用。        你写错了吧
因该是类调用,而不是对象调用吧
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马