2017-05-07 3 views
0

Wie würde ich ein Array innerhalb eines Objekts initialisieren, dessen Länge die Eingabe eines Benutzers ist? Ich möchte die Anzahl der Fledermäuse über Benutzereingabe einstellen, und die Array-Länge, dann innerhalb des Arrays von basesAchieved, ich möchte eine Zahl basierend auf Benutzereingabe (1-4), die die Basis erreicht.Java-Array-Länge über Benutzereingabe festlegen

// set up a Batter 
public class Batter 
{ 
    private String batterName; 
    private int numberOfBats; 
    private int[] basesAchieved; 

    // fill fields with empty data, how is this done with an array?? 
    public Batter() 
    { 
     this("", 0,0); 
    } 

    // 
    public Batter(String batterName, int numberOfBats, int[] basesAchieved) 
    { 
     this.batterName = batterName; 
     this.numberOfBats = numberOfBats; 
     this.basesAchieved = basesAchieved; 
    } 

    public void setBatterName(String batterName) 
    { 
     this.batterName = batterName; 
    } 

    public String getBatterName() 
    { 
     return batterName; 
    } 

    public void setNumberOfBats(int numberOfBats) 
    { 
     this.numberOfBats = numberOfBats; 
    } 

    public int getNumberOfBats() 
    { 
     return numberOfBats; 
    } 

    // want to set an array to get a number (1-4) for each number of @ bats  
    // (numberOfBats). 
    public void setBasesAchieved(int[] basesAchieved) 
    { 
     this.basesAchieved = ; 
    } 

    public int getBasesAchieved() 
    { 
     return basesAchieved; 
    } 
} 

Antwort

0

Im setter Methode Sie this.basesAchieved = basesAchieved; zuweisen soll. Wenn Sie die basesAchieved mit einer Länge initialisiert werden sollen dann nur: int[] basesAchieved = new int[yourlength] in der Klasse, die Sie initialisieren Batter Klasse, dann rufen Sie die setter Methode dieser Klasse

0

Sie haben einige Fehler in der Klasse, in der Sie versuchen, eine int-Array zu verwenden.

public Batter() 
{ 
    this("", 0, new int[0]); 
} 

// skipped... 

public void setBasesAchieved(int[] basesAchieved) 
{ 
    this.basesAchieved = basesAchieved; 
} 

public int[] getBasesAchieved() 
{ 
    return basesAchieved; 
} 

Diese Frage erklärt, wie Benutzereingaben How can I get the user input in Java?

Eine der einfachsten Möglichkeiten zu erhalten, ist ein Scanner-Objekt wie folgt zu verwenden:

Scanner reader = new Scanner(System.in); // Reading from System.in 
System.out.println("Enter a number: "); 
int n = reader.nextInt(); // Scans the next token of the input as an int. 

Sie diese Methode verwenden können Lesen Sie die Nummer numberOfBats und erstellen Sie Ihr Objekt mit der richtigen Array-Länge. Dann können Sie den Benutzer weiter nach Eingabe fragen und diese in das Array basesAchieved setzen. Oder Sie können den Leser zuerst nach allen Eingaben fragen und dann Ihr Objekt erstellen.

Verwandte Themen