我有2节课。一个包含关于一堆不同类型的水果的私有哈希映射(此类称为fruitStore),另一个包含抽象类,该抽象类在其字段中包含字符串的私有ArrayList(此类称为fruitNames)。
fruitStore中HashMap的关键字是每个水果的名称,该字段是有关水果的信息(价格和有效期等)。
目前,我的目标是将所有键(水果名称)放入fruitNames中的ArrayList中。
到目前为止,我一直在尝试在fruitStore中创建另一个私有字符串数组,将其称为名称,然后将所有名称存储在其中。之后,我决定在fruitNames类中创建一个函数以移入所有水果名称。
所以我在fruitNames中编写了以下代码
//making an object of fruit_store
private fruitStore fruit_store = new fruitStore();
void insert_fruit(ArrayList<String> fruits){
for ( int i = 0; i < fruit_store.names.size(); i++ ){
//here i planned to add the elements in names to the fruitList array
}
}
但是,我有一个问题。由于ArrayList名称是私有的,并且只能在fruitStore类中访问,所以我无法在任何其他类中使用它。我唯一能想到的解决方案是公开姓名,但被告知不要这样做。
有人知道解决此问题的方法吗?
答案 0 :(得分:1)
您可以在fruitStore类中创建一个为您获取大小而无需暴露整个字段的方法
public int getSize(){
return names.size()
}
答案 1 :(得分:1)
听起来您最好将它声明为“受保护”。
“ private修饰符指定只能在其自己的类中访问该成员。protected修饰符指定该成员只能在其自己的包中访问(与package-private一样),此外,还可以由子类访问。同类产品放在另一个包装中。” -Controlling Access to Members of a Class