有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

是否可以编辑抽象类?JAVA

我有两门课。一个是在一堆不同类型的水果上包含一个私有哈希映射的类(这个类称为FrootStore),另一个是一个抽象类,它的字段中包含一个私有的字符串数组列表(这个类称为FrootNames)

水果商店中HashMap的关键是每个水果的名称,字段是水果的信息(价格和有效期等)

现在,我的目标是将所有键(水果名称)放入水果名称中的ArrayList中

到目前为止,我尝试的是在水果店中创建另一个私有字符串数组,将其命名,然后将所有名称存储在其中。在那之后,我决定在水果名类中创建一个函数,以便在所有水果名中移动

因此,我用水果名编写了以下代码

//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名称是私有的,并且只能在水果店类中访问,因此我无法在任何其他类中使用它。我能想到的唯一解决办法是公开姓名,但有人告诉我不要这样做

有人知道这个问题的解决方法吗


共 (2) 个答案

  1. # 1 楼答案

    听起来你最好把它声明为受保护的

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

  2. # 2 楼答案

    您可以在水果店类中创建一个方法,在不公开整个字段的情况下为您获取大小

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