[英]Passing array of objects into another object in java and printing it out java
我有一個 class 補充,我已經為它創建了一系列補充。 現在我想將這個 object 傳遞到另一個 class 雜志,其中一個雜志的實例有許多補充。 所以我希望能夠將這個補充對象數組傳遞給我的 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);
}
}
而是使用printMethod()使用 Object class 的toString()方法並在 class 中覆蓋。
public class Magazine {
@Override
public String toString() {
String str = "Magazine Name: " + magazinename + "\nWeekly Cost: " + WeeklyCost + "\nSupplements: ";
for (Supplement supplement : supplements) {
str += supplement;
}
return str;
}
// public void printMagazine(){
// System.out.println("Magazine Name: " + this.magazinename);
// System.out.println("Weekly Cost: " + this.WeeklyCost);
// System.out.println("Supplements: " + supplements[this.supplements]);
// }
}
class Supplement {
@Override
public String toString() {
return "Supplement: " + supplementname + "\nWeekly Cost: " + WeeklySupCost;
};
// public void printSupplements(){
// System.out.println("Supplement: " + this.supplementname);
// System.out.println("Weekly Cost: " + this.WeeklySupCost);
// }
}
// In Main
//for(int i = 0; i < 4; i++){
// magazineobj.printMagazine();
// supplements[i].printSupplements();
//}
System.out.println(magazineobj);
要打印數組的元素,可以使用Arrays.toString(arr)
。 請找到以下代碼並檢查它是否滿足您的要求。
補充。java
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);
System.out.println("supplements: " + Arrays.toString(this.supplements));
}
@Override
public String toString() {
return "Supplement{" +
"supplementname='" + supplementname + '\'' +
", WeeklySupCost=" + WeeklySupCost +
", supplements=" + Arrays.toString(supplements) +
'}';
}
}
雜志.java :
import java.util.Arrays;
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: " + Arrays.toString(this.supplements));
}
}
Main.java :
public class Main {
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].toString();
}
}
}
您還可以使用toString()
方法打印上述對象的值。
使用ArrayList
是不是簡單多了? 往下看:
Supplement
class:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Supplement {
private String supplementname;
private int WeeklySupCost;
public Supplement(String supplementname, int weeklySupCost) {
this.supplementname = supplementname;
WeeklySupCost = weeklySupCost;
}
public String getSupplementname() {
return supplementname;
}
public void setSupplementname(String supplementname) {
this.supplementname = supplementname;
}
public int getWeeklySupCost() {
return WeeklySupCost;
}
public void setWeeklySupCost(int weeklySupCost) {
WeeklySupCost = weeklySupCost;
}
@Override
public String toString() {
return "Supplement [supplementname=" + supplementname + ", WeeklySupCost=" + WeeklySupCost + "]";
}
}
Magazine
class:
public class Magazine {
private String magazinename;
private int WeeklyCost;
private List<Supplement> list;
public Magazine(String magazinename, int weeklyCost, List<Supplement> list) {
this.magazinename = magazinename;
WeeklyCost = weeklyCost;
this.list = list;
}
public String getMagazinename() {
return magazinename;
}
public void setMagazinename(String magazinename) {
this.magazinename = magazinename;
}
public int getWeeklyCost() {
return WeeklyCost;
}
public void setWeeklyCost(int weeklyCost) {
WeeklyCost = weeklyCost;
}
public List<Supplement> getList() {
return list;
}
public void setList(List<Supplement> list) {
this.list = list;
}
@Override
public String toString() {
return "Magazine [magazinename=" + magazinename + ", WeeklyCost=" + WeeklyCost + ", list=" + list + "]";
}
}
JavaApplication1
class:
import java.util.ArrayList;
import java.util.List;
public class JavaApplication1 {
public static void main(String[] args) {
List<Supplement> supplements = new ArrayList<Supplement>();
supplements.add(new Supplement("Sports Illustrated Special", 4));
supplements.add(new Supplement("Health and Nutrition", 2));
supplements.add(new Supplement("Lifestyled", 5));
supplements.add(new Supplement("Gamer's Update", 3));
Magazine magazineobj = new Magazine("The Wheels Special", 35, supplements);
System.out.println(magazineobj);
//System.out.println(magazineobj);
}
}
output 是:
Magazine [magazinename=The Wheels Special, WeeklyCost=35, list=[Supplement [supplementname=Sports Illustrated Special, WeeklySupCost=4], Supplement [supplementname=Health and Nutrition, WeeklySupCost=2], Supplement [supplementname=Lifestyled, WeeklySupCost=5], Supplement [supplementname=Gamer's Update, WeeklySupCost=3]]]
您可以更改toString()
方法以顯示您希望的內容,並且可以大大減少代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.