[英]Declaring an object array in java (code included)?
public class Pig {
private int pigss;
private Pig[] pigs;
public Pig[] pigNumber (int pigss)
{
pigs = new Pig [pigss];
return pigs;
}
包含主要方法的代碼:
public class animals{
public static void main(String[] args){
Pig cool = new Pig();
Scanner keyboard = new Scanner (System.in);
System.out.println("How many pigs are there?");
int pigss = Integer.parseInt( keyboard.nextLine() );
cool.pigNumber(pigss);
//This is where I have trouble. I want to use the array pigs here in the main method, this is what i tried:
Pig[] pigs = cool.pigNumber(pigss);
然后,我嘗試使用for循環,並將值(String)分配給數組的索引(pigs [])。 但是給我的錯誤是:無法從String轉換為Pig。 任何提示表示贊賞。 謝謝。
for(int j = 0; j < pigs.length; j++)
{
System.out.println("What is the pig " + (j+1) + "'s name");
pigs[j] = keyboard.nextLine();
}
您的豬需要一個屬性來包含您要傳遞的字符串值:
public class Pig {
private String name;
public void setName(String n) {
name = n;
}
public String getName() {
return name;
}
然后,當您要將此字符串值分配給您的豬時:
int indexOfPig = 0; // Or whatever it is supposed to be
pigs[indexOfPig].setName("I am a string");
在Java中,您只能將int用作數組的索引
有人說“無法從String轉換為Pig”,因為您不能這樣做!
如果您想以某種方式將String
轉換為Pig
,則需要編寫一些代碼來進行轉換。 例如,您可能編寫了一個構造函數,該構造函數根據某種描述創建了一個新的Pig
。 或者,您可以編寫一種通過名稱,數字或其他方式查找 Pig
的方法。
很難提供任何更具體的建議,因為您不會告訴我們字符串值是什么...或您希望字符串如何成為豬。 (我唯一的建議是嘗試Macrame :-))
Pig沒有name
成員,甚至沒有接受字符串的方法。 另外,您正在嘗試將String
(keyboard.nextline()分配給Pig
(pigs [j]。
為您的豬添加一個屬性name
。
class Pig{
public String name:
public void Pig(String name){
this.name = name;
}
}
然后在循環中分配一個Pig
的新實例。
pigs[j] = new Pig(keyboard.nextLine());
也擺脫無用的類pigNumber
。 您只需要一個Pig
的ArrayList
。 數組列表的大小可以動態調整。
List<Pig> pigs = new ArrayList<Pig>
所以你的循環可能像
String name = ""
while(true){
name = keyboard.readline();
if(name== "stop"){
break;
}
pigs.add(new Pig(names);
}
然后獲得豬的數量很簡單
System.out.println(pigs.length());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.