JAVA对象数组的使用方法
boos是一个对象数组,我不明白的地方在于,Bookb=books[i];不能直接输出books[i].get方法,需要设置一个临时对象b来接受,这是为什么?...
boos是一个对象数组,我不明白的地方在于,Book b = books[i]; 不能直接输出 books[i].get方法,需要设置一个临时对象b 来接受,这是为什么?
展开
展开全部
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]; 这样也可以 方便加 强制转换、 不需要写很多的代码
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]; 这样也可以 方便加 强制转换、 不需要写很多的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Book b = books[i]这一行,Book实例化一个对象b,申请了空间。而books[i]只是引用传进来的地址;所以b才可以接受。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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()
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()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询