JAVA怎么调用另外一个类中的数组中的某一项属性?看问题详情

如:借书系统,创建三个类第一个类Library,里面创建一个Library()方法,包含books数组.第二个类Book,里面Book()方法带有intid,String... 如:
借书系统,创建三个类
第一个类Library,里面创建一个Library()方法,包含books数组.
第二个类Book,里面Book()方法带有int id,String name两个属性(书的编号、书名),用来给Library里面的书定义这两个属性。
第三个类Main,main()方法中包含putBook()方法,用来调用Book(int id,String name)给Library里面的数组存“书”,即模拟把书存到图书馆里面的操作。

但是在main()方法里面,创建了一个Library的对象library,却不能用library.books.id来调用书的编号(.id显示红色),请问这是为什么?
展开
 我来答
wh猎人
2017-10-15 · TA获得超过1125个赞
知道大有可为答主
回答量:1157
采纳率:89%
帮助的人:659万
展开全部

book 的id属性是private的吧?改成public试试。不过,一般是搞个setter/getter方法。

public class Book{
    public String id;// 注意前面的修饰符是public的才可以在任意包引用
    public void setId(String id){this.id=id;}
    public void getId(){return this.id}
}

另外,你的books是数组,应该这样用:

library.books[idx].id="some value";// idx表示数组的下标,从0开始
追问

是不是数组也需要声明int id和String name两个属性? 还是说必须用二维数组?

或者定义一个int型数组,一个String数组 分别存储书的编号和书的名称?

追答

晕菜,你一点java都不懂啊,去下载一本java编程思想看看吧。

java数据的初始化:

Book books[]={new Book(1,"n1"),new Book(2,"n2")};// 声明并初始化

Book books[]=new Book[2];// 先声明
books[0]=new Book(1,"n1");// 后赋值
老戴在此564
2017-10-15 · TA获得超过2002个赞
知道大有可为答主
回答量:3874
采纳率:72%
帮助的人:492万
展开全部
个人理解仅供参考
类library里面有没有books.id的属性啊,如果有的话,也应该是在你调用了putBook()方法之后才有的,顺序的问题有没有调整?
追问
是这样的,如果在同一个类里面,比如Library类
int id;
String name;
public Library(int id, String name){
this.id=id;
this.name=name;
}
//然后main方法和这个数组在同一个类里面就可以调用id,但如果不在一个类里面就显示id错误
public static void main(String[] args){}
追答
这个我看到了,应该是library.id不是library.books.id
你看看是不是这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式