是否可以编辑Abstract类?爪哇

时间:2018-10-24 20:04:31

标签: java class arraylist abstract-class

我有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类中访问,所以我无法在任何其他类中使用它。我唯一能想到的解决方案是公开姓名,但被告知不要这样做。

有人知道解决此问题的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以在fruitStore类中创建一个为您获取大小而无需暴露整个字段的方法

public int getSize(){
    return names.size()
}

答案 1 :(得分:1)

听起来您最好将它声明为“受保护”。

“ private修饰符指定只能在其自己的类中访问该成员。protected修饰符指定该成员只能在其自己的包中访问(与package-private一样),此外,还可以由子类访问。同类产品放在另一个包装中。” -Controlling Access to Members of a Class