一个关于对象的问题,比较难!!!

chinani 2001-03-31 04:04:00
java中是在堆中分配一个对象的:如AudioClip my = new AudioClip();
在定义这样一个变量后,方可使用
AudioClip中的方法,如:my.play();//正确 但若仅定义一个对象变量
AudioClip my 然后使用AudioClip中的方法,如my.play(); //错误

我想请教的是,String是一个类,那么使用 String
my;定义一个对象实例后,使用my.subString(),为什么就是正确的呢?
--
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanxiang 2001-04-03
  • 打赏
  • 举报
回复
luodi(无知者无畏)确有水平,能否劳驾看一看我的问题:专用JDBC驱动程序如何使用?谢了
luodi 2001-04-02
  • 打赏
  • 举报
回复
只定义String my; 之后就用 my.subString() 就可以吗?反之定义AudioClip my; 而使用 my.play();就会出错吗?

答案是: 错! 这要视情况而定,这取决于你在那里声明这个变量。
如果你定义的变量是类的成员变量,这两种做法都是成功的,因为类的成员变量如果你不去显式初始化的话,编译器会将非主类型(int, long, etc..)的对象全都初始化成null,而你去使用这些方法时编译部分不会报错,但要是不真正初始化过,运行期一定会出异常的。
但如果这两个声明是在类的方法内部则都会出错!因这这时编译器是不会为你作这种缺省初始化的!也一定会象楼上tanxing所说,编译器就会报错的。
tanxiang 2001-04-01
  • 打赏
  • 举报
回复
谁说是正确的?String my;定义一个对象实例后,使用my.subString(),
String my had not been initialized.
类必须实例化才可使用的,AudioClip与String都是一样。
yangzi 2001-04-01
  • 打赏
  • 举报
回复
呵呵,浪费了20分
chinani 2001-03-31
  • 打赏
  • 举报
回复
谢了taolei,后来我想通了。
taolei 2001-03-31
  • 打赏
  • 举报
回复
String my = "xxx";就相当于 String my = new String("xxx");

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧