JAVA对象数组的使用方法

boos是一个对象数组,我不明白的地方在于,Bookb=books[i];不能直接输出books[i].get方法,需要设置一个临时对象b来接受,这是为什么?... boos是一个对象数组,我不明白的地方在于,Book b = books[i]; 不能直接输出 books[i].get方法,需要设置一个临时对象b 来接受,这是为什么? 展开
 我来答
anglewang98
推荐于2017-12-15 · TA获得超过535个赞
知道小有建树答主
回答量:420
采纳率:80%
帮助的人:281万
展开全部

books[i].getId()的方法是可以的,不是必须用一个临时对象。

你这段代码等效于:

public void find(Book[] books){
    for(int i=0; i<books.length; i++){
        if(null!=books[i]){
            System.out.println(books[i].getAuthor()+books[i].getDate()+books[i].getId()+books[i].getName()+books[i].getNum()+books[i].getPrice());
        }
    }
}

用临时对象的好处是代码看起来干净些,写books[i],占的长度大些。

匿名用户
2014-08-27
展开全部
因为在 for循环内 books[i] 就是依次正序得到books里的 值 下边也可以直接用 books[i]; 比如
for(int i=0;i<books.length;i++){
if(books[i] != null){
system.out.println(books[i].getAuthor()+books[i].getDate() 等等 );
}
}

这样写也是可以的 、 只是 怎么写 books[i] 会写很多 容易出错 所以 加了一句
Book b = books[i];
这样 只要用一个 b就可以了、 其实没什么差别、

还有一种情况是 books数组里 放的类型是不知道的 所以 books[i]; 是什么类型也是不知道就会成为 object
如果有 Book b = (Book) books[i]; 这样也可以 方便加 强制转换、 不需要写很多的代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随洋流去旅行
2014-08-27 · TA获得超过302个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:185万
展开全部
Book b = books[i]这一行,Book实例化一个对象b,申请了空间。而books[i]只是引用传进来的地址;所以b才可以接受。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-08-27
展开全部

完全可以输出呀。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liujq301
2014-08-27 · TA获得超过374个赞
知道小有建树答主
回答量:404
采纳率:100%
帮助的人:202万
展开全部
Book[] arrBooks = new Book[3];
for (int i = 0; i < arrBooks.length; i++) {
arrBooks[i] = new Book();
}
System.out.println(arrBooks[1].getName());
你要先arrBooks[i] = new Book();这样才可以用arrBooks[1].getName()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式