【发布时间】:2020-04-23 07:00:48
【问题描述】:
我有一个类 Supplement,为此我创建了一系列补充。现在我想将此对象传递给另一个类 Magazine,其中一个杂志的实例有许多补充。所以我希望能够将这个补充对象数组传递到我的 Magazine 构造函数中,并在 Magazine 中编写一个方法,我可以使用它来显示杂志名称、成本以及它存储的补充数组中的所有详细信息。我想我已经成功地将它作为参数传递了,但是我怎样才能编写一个能够在其相关杂志旁边显示该数组的方法?
补充.java:
package javaapplication1;
import java.util.Arrays;
public class Supplement {
private String supplementname;
private int WeeklySupCost;
private Supplement[] supplements;
public void SetSupplementName(String supplementname){
this.supplementname = supplementname;
};
public void SetWeeklySupCost(int WeeklySupCost){
this.WeeklySupCost = WeeklySupCost;
};
public String GetSupplementName(){
return supplementname;
};
public int GetWeeklyCost(){
return WeeklySupCost;
};
public Supplement(String supplementname, int WeeklySupCost){
this.supplementname = supplementname;
this.WeeklySupCost = WeeklySupCost;
};
public void printSupplements(){
System.out.println("Supplement: " + this.supplementname);
System.out.println("Weekly Cost: " + this.WeeklySupCost);
}
}
杂志.java:
package javaapplication1;
public class Magazine {
private String magazinename;
private int WeeklyCost;
private Magazine magazineobj;
private Supplement[] supplements;
public void SetMagazineName(String magazinename){
this.magazinename = magazinename;
};
public void SetWeeklyCost(int WeeklyCost){
this.WeeklyCost = WeeklyCost;
};
public String GetMagazineName(){
return magazinename;
};
public int GetWeeklyCost(){
return WeeklyCost;
};
public Magazine(String magazinename, int WeeklyCost, Supplement[] supplements){
this.magazinename = magazinename;
this.WeeklyCost = WeeklyCost;
this.supplements = supplements;
};
public Magazine(){};
public void printMagazine(){
System.out.println("Magazine Name: " + this.magazinename);
System.out.println("Weekly Cost: " + this.WeeklyCost);
System.out.println("Supplements: " + supplements[this.supplements]);
}
}
主程序:
package javaapplication1;
public class JavaApplication1 {
public static void main(String[] args) {
Supplement[] supplements = new Supplement[4];
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);
Magazine magazineobj = new Magazine("The Wheels Special", 35, supplements);
for(int i = 0; i < 4; i++){
magazineobj.printMagazine();
supplements[i].printSupplements();
}
//System.out.println(magazineobj);
}
}
【问题讨论】:
-
为什么你的补充类有一个补充数组作为字段?为什么你的杂志班有杂志作为一个领域?同样在java中,方法结束后没有分号
-
我之前使用它们来尝试创建一个将对象数组作为参数并自动填充一些细节的方法,只是忘记删除它。不要粗鲁,你是对的,但这对我的问题没有任何帮助
-
当然,这并不是为了解决您的问题,只是一些说明。如果我正确理解您的问题,您想为您的
Magazine和Supplement类实现toString()方法。将对象打印到控制台时会调用此方法。