java - 在另一个类中使用一个类的对象和方法数组错误 - JAVA

标签 java arrays class object

我对 Java 还很陌生,我很难理解一些概念。我想要实现的是在 Magazine 类中构造一个 Magazine,它需要在其构造函数中包含来自 Supplement 类的对象数组。我在 Supplement 中创建了一个方法,该方法填充补充对象的数组,并且我尝试在 Magazine 中调用此方法来填充我在其中创建的另一个补充对象。然后,我尝试将该对象数组传递给 Magazine 构造函数,以便一本杂志可以拥有包含 4 个增刊的数组。合理? 我首先面临的问题是我的方法 fillArray 在杂志中未被类 Supplement 识别。我所有的类都在同一个源码包下,那么这里有什么问题呢?关于我的逻辑可能出错的地方的一些反馈会很有帮助,因为我也必须将这个逻辑应用于其他一些相关的类,而且我不太确定如何去做。

我的另一个问题是,在进行一些研究后,我发现有些人在他们的类中使用 public static void main(String args[]) 进行某些操作。这样做的目的是什么,因为我认为它只在客户端程序内部使用,如果在类中使用,客户端程序有什么用?

杂志.java:

public class Magazine {
    private String magazinename;
    private int WeeklyCost;
    private Supplement[] supplement;

    public static void main(String args[]){

        Supplement[] supplements = new Supplement[3];
        supplements.fillArray();

        Magazine magazineobj = new Magazine("The Wheels Special", 35, supplements);
    };

    public void SetMagazineName(String magazinename1){    
        magazinename = magazinename1;
    };

    public void SetWeeklyCost(int WeeklyCost1){
        WeeklyCost = WeeklyCost1;    
    };

    public String GetMagazineName(){        
        return magazinename;
    };

    public int GetWeeklyCost() {        
        return WeeklyCost;
    };

    public void SetMagazine(String magazinename1, int WeeklyCost1, Supplement[] supplements1){
            magazinename = magazinename1;
            WeeklyCost = WeeklyCost1;
            supplement = supplements1;
    };

    public Magazine(String magazinename1, int WeeklyCost1, Supplement[] supplements1){
        SetMagazine(magazinename1,WeeklyCost1,supplements1);
    };
}

补充.java:

public class Supplement {
    private String supplementname;
    private int WeeklySupCost;

    Supplement[] supplements = new Supplement[3];

    public void fillArray(){ 
        supplements[0] = new Supplement("Sports Illustrated Special", 4);
        supplements[1] = new Supplement("Health and Nutrition", 2);
        supplements[2] = new Supplement("Lifestyled", 5);
        supplements[3] = new Supplement("Gamer's Update", 3);
     }

    public void SetSupplementName(String supplementname1){ 
        supplementname = supplementname1;
    };

    public void WeeklySupCost(int WeeklySupCost1){
        WeeklySupCost = WeeklySupCost1;
    };

    public String GetSupplementName(){
        return supplementname;
    };

    public int GetWeeklyCost(){        
        return WeeklySupCost;
    };

    public void SetSupplement(String supplementname1, int WeeklySupCost1){
        supplementname = supplementname1; 
    };

    public Supplement(String supplementname1, int WeeklySupCost1){
        SetSupplement(supplementname1, WeeklySupCost1);
    }
}

最佳答案

您的问题是您尝试在 Supplement[] 上调用 Supplement 实例方法 fillArray(),而不是 >补充.

您需要对数组的每个元素(而不是数组)调用 fillArray() 方法。

更改:

supplements.fillArray(); 

至:

for (Supplement supplement : supplements) {
      supplement.fillArray();
}

关于java - 在另一个类中使用一个类的对象和方法数组错误 - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61358552/

相关文章:

java - 我的形状上没有显示 J 组件?

java - Spring webflow 遇到问题

python numpy 数组追加在 .py 文件中不起作用,但在终端中起作用

javascript - 最佳阵列设置

类中的 C++ 辅助函数,如何使用它们?

c++ - 将派生类作为虚拟基类传递而不丢失更改

java - 获取电子邮件客户端不支持通过 Java 发送电子邮件的 HTML 消息

java - 如何正确转义 JSP 标签中的三重嵌套引号

javascript - 将多个数组的每一项平均到一个数组中

Python,selenium webdriver - 我需要基类方法来返回其子类的类型。如何实现?