我有一個ArrayList的對象。對象是鮮花。在鮮花列表中添加鮮花後,我想打印出每朵鮮花的名字。每當我添加一朵花,我就會給這朵花命名。假設我加了三朵名爲「玫瑰」,「鬱金香」和「水仙花」的花。當我運行遍歷ArrayList的函數時,我得到的只有三個水仙花。如果我添加五朵花,它會顯示五朵花,但所有花都有我添加的最後一朵花的名稱。這是我的主類:我的ArrayList的對象不打印出我想要的對象屬性
import java.util.Scanner;
import java.util.ArrayList;
public class mainClass {
static ArrayList<flowerClass> flowerPack = new ArrayList<flowerClass>();
public static void main(String[] args){
Scanner input = new Scanner(System.in);
while(true){
System.out.println("1. Add flower to flowerpack.");
System.out.println("2. Display the flowers in the flowerpack.");
int userChoice = input.nextInt();
switch(userChoice){
case 1:
addFlower();
break;
case 2:
displayFlowers();
break;
}
}
}
public static void addFlower(){
Scanner input = new Scanner(System.in);
System.out.println("What is the flower's name?");
String flowerName = input.nextLine();
flowerPack.add(new flowerClass(flowerName));
}
public static void displayFlowers(){
for (Object o: flowerPack){
System.out.println(flowerClass.getName());
}
}
}
這裏是我的flowerClass:
public class flowerClass {
public static int numberOfFlowers = 0;
public static String flowerName = null;
static String flowerColor = null;
static int numberThorns = 0;
static String flowerSmell = null;
flowerClass(String desiredName){
flowerName = desiredName;
numberOfFlowers++;
}
public static void setName(String desiredName){
flowerName = desiredName;
}
public static String getName(){
return flowerName;
}
}
我一直在使用對象而不是一個ArrayList的數組嘗試。我可以讓它顯示每個單獨的flowerClass對象的唯一地址,但我永遠無法成功訪問每個對象的flowerName以將其顯示給用戶。感謝您的任何建議。
從'flowerClass'中的任意位置移除'static'關鍵字 –
將您的for循環更改爲'for(flowerClass o:flowerPack)'並從每一個移除靜態e – A4L
可能的重複[在現代語言中,'靜態'在Java中意味着什麼?](http://stackoverflow.com/questions/2649213/in-laymans-terms-what-does-static-mean-in-java ) – femtoRgon