gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 17:17:20 26 4
gpt4 key购买 nike

我对 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com