2014-04-19 156 views
0

因此,我已经阅读了stackoverflow上的所有构造函数未定义的帖子,并尝试了解决方案,他们没有为我工作。也许我错了。我一直得到“构造函数Gerbil(int)未定义。”Java:构造函数gerbil(int)未定义

这就是问题的代码:

GerbilArray[i] = new Gerbil(i); 

我全码:

import java.util.Scanner; 
public class Gerbil { 

public String name; 
public String id; 
public String bite; 
public String escape; 

public Gerbil() { 
    this.name = ""; 
    this.id = ""; 
    this.bite = ""; 
    this.escape = ""; 
} 

public static void main(String[] args) { 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("How many foods?"); 
    int totalFood = keyboard.nextInt(); 

    System.out.println("How many gerbils in the lab?"); 

    int numberOfGerbils = keyboard.nextInt(); 
    Gerbil[] GerbilArray = new Gerbil[numberOfGerbils]; 

    for(int i = 0; i <= numberOfGerbils; i++){ 
     GerbilArray[i] = new Gerbil(i); 

     System.out.print("Lab ID:"); 
     String id = keyboard.next(); 

     System.out.print("Gerbil Nickname:"); 
     String name = keyboard.next(); 

     System.out.print("Bite?"); 
     String bite = keyboard.next(); 

     System.out.print("Escapes?"); 
     String city = keyboard.nextLine(); 

     for (int j = 0; j < totalFood; j++) { 
      System.out.println("How many of food " + (j+1) + "do you eat?:"); 

     } 

    } 
} 
} 

而且你可能已经看出,我的嵌套的for循环还没有结束为好。我试图在一个对象中创建一个数组,这个对象将在用户列出的对象中存储“x”个整数(int totalFood),但我不知道如何。

+0

变化'GerbilArray [i] =新的长爪沙鼠(我)'来'GerbilArray [i] =新的长爪沙鼠()'因为没有'沙鼠(int数据)'构造函数。 – Kishore

+0

谢谢!这解决了构造问题! – newJavaUser

+0

不要在他们回答后删除帖子,这是与Stack Overflow的想法 - 也许有人有同样的问题,因为你可以来这里找到解决方案。 – 3yakuya

回答

1

在类Gerbil中没有构造函数Gerbil(int a),您试图调用它!

只是把它这种方式:

GerbilArray[i] = new Gerbil(); 
+0

谢谢!那究竟做了什么?到目前为止,我的课并没有真正把物体抛到脑后。 – newJavaUser

+0

@newJavaUser>不客气。为了创建一个对象,你应该使用正确的参数来调用它的构造函数。例如'Gerbil g = new Gerbil()'。 (还有其他方法我不想让你迷惑你) – mok

相关问题