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