关于java的关键字new

Yori Fang 2011-12-15 11:09:39
刚刚开始学java请问
Book[] mybook = new Book[7];
之后,但是我没有给mybook赋初值,mybook[0]---mybook[6]是否已经存在?
...全文
133 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙腾冰 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wren4255 的回复:]

1。new Book[7]
内存中开辟了空间,定义了7个Book对象的引用变量,值为null
2。Book[] mybook
只声明了Book对象引用变量的数组,没new()不分配空间。
3。Book[] mybook = new Book[7];
把7个Book对象的引用变量,放到数组中。
4。mybook[0] = **
把Book对象**交给mybook[0]来控制。

……
[/Quote]
+·1111
wren4255 2011-12-16
  • 打赏
  • 举报
回复
1。new Book[7]
内存中开辟了空间,定义了7个Book对象的引用变量,值为null
2。Book[] mybook
只声明了Book对象引用变量的数组,没new()不分配空间。
3。Book[] mybook = new Book[7];
把7个Book对象的引用变量,放到数组中。
4。mybook[0] = **
把Book对象**交给mybook[0]来控制。
dong_very_good 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 masm32v9 的回复:]
mybook[0]这些数组元素当然存在,只不过这时它们的值都还是null
[/Quote]
波杰克男 2011-12-16
  • 打赏
  • 举报
回复
null
龙四 2011-12-16
  • 打赏
  • 举报
回复
数组本身是存在的,但里面的值都是null


不像c++中的
Book mybook[7];
会导致7次调用Book的默认构造函数

更像
Book *mybook = new Book[7];
孟祥月 2011-12-16
  • 打赏
  • 举报
回复
new Book[7];这个7不是说最后一个7位置元素赋值了 是说数组大小是7 new就相当于开辟空间 默认会赋值的
s781112 2011-12-16
  • 打赏
  • 举报
回复
存在,但值为null。你每次new一个数组,系统都会给这个数组赋值为null
无伤 2011-12-16
  • 打赏
  • 举报
回复
前边大家的解释已经很清楚了, 我想告诉楼主的是学习java不要老拿学C的思想来考虑
杀猪剑客 2011-12-16
  • 打赏
  • 举报
回复
+1
[Quote=引用 2 楼 zclandzzq 的回复:]
当使用new关键字实例化对象之后,就已经为对象开辟了内存空间,只是此时堆内存里存储的是属性的默认值,如果是String型则为null,如果是Int型,则为0。
[/Quote]
孤雨 2011-12-15
  • 打赏
  • 举报
回复
当使用new关键字实例化对象之后,就已经为对象开辟了内存空间,只是此时堆内存里存储的是属性的默认值,如果是String型则为null,如果是Int型,则为0。
伊吹萃香 2011-12-15
  • 打赏
  • 举报
回复
mybook[0]这些数组元素当然存在,只不过这时它们的值都还是null

62,615

社区成员

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

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