So drucken Sie Funktionen aus einer Schleife eines Arrays von Objekten in Java aus

Fady Mohamed Elganzoury

Wie kann ich die Objekte ausdrucken, die ich dem Programm in Fall 2 gegeben habe?

Was ich zu implementieren versuche, ist Fall 2, der mir alle Informationen über die Dinge gibt, die ich in Fall 1 eingefügt habe

Zuerst habe ich versucht, nur die Setter und Getter zu verwenden, aber aus irgendeinem Grund hatte ich eine NullPointerException, als ich die do-while-Methode verwendete. Also habe ich mich für den Konstruktor entschieden, aber gleichzeitig gab es einen Fehler beim Versuch, Fall 2 zu implementieren. Daher wäre jede Hilfe willkommen.

import java.util.Scanner;

public class GameProject {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int choice;
        do{
            GameSale[] game;
            
            System.out.println("Hello! welcome to the menu!");
            System.out.println("Please Choose your option!");
            System.out.println(" 1-Enter a new game's Info \n 2-Check a game's Information \n 3- Check a game's sales \n 0-Exit");
            choice = input.nextInt();
            switch (choice){
            case 0:
                break;
            case 1:
                System.out.println("");
                System.out.print("How many games do you want to add? : ");
                    int size = input.nextInt();
                    game = new GameSale[size];
                    for (int i = 0; i < size; i++) {      
                    System.out.print("Enter Game "+(i+1) + "'s Name!: \n");
                    String tempname = input.next();
                    System.out.print("Enter the ID of the Game : \n");
                    int tempid = input.nextInt();
                    System.out.print("Enter the Game Type : \n");
                    String tempgametype=input.next();
                    System.out.print("Enter the development Company's Name : \n");
                    String tempgamecomp = input.next();  
                    System.out.print("Enter the Release Sale : \n");
                    double temprelsale = input.nextDouble();
                    System.out.print("Enter the total Sales : \n");
                    double temptotsale = input.nextDouble();
                    game[i]=new GameSale(temprelsale,temptotsale,tempid,tempname,tempgamecomp,tempgametype);
                        }break;
         case 2: 
                    for(int i = 0; i < game.length; i++){
                    System.out.println(game[i].toString());
                 }
                }while(choice!=0);
            }
        }

Ich habe eine Klasse, die die Setter und Getter für einige der regulären Informationen hat

public class GameInfo {

    protected int ID;
    protected String GameName;
    protected String DevelopmentCompany;
    protected String GameType;
    
    public GameInfo(int ID, String GameName, String DevelopmentCompany, String GameType) {
        
        this.ID = ID;
        this.GameName = GameName;
        this.DevelopmentCompany = DevelopmentCompany;
        this.GameType = GameType;
    }
        
    public void SetID(int id) {
        this.ID = id;
    }

    public int GetID() {
        System.out.println("The ID is " + ID);
        return ID;
    }

    public void SetName(String Name) {
        this.GameName = Name;
        
    }

    public String GetName() {
        System.out.println("The Name of the Game Is " + GameName);
        return GameName;

    }

    public void SetCompanyName(String CompanyName) {
        this.DevelopmentCompany = CompanyName;
        
    }

    public String GetCompanyName() {
        System.out.println("The Name Of the Development company Is " + DevelopmentCompany);
        return DevelopmentCompany;
    }
    public void SetGameType(String GameType){
        this.GameType=GameType;
        
    }
    public String GetGameType(){
        System.out.println("The Game Type is : "+GameType);
        return GameType;
    }
}

und eine super Klasse mit dem Verkauf und einem Konstruktor für den Verkauf

public class GameSale extends GameInfo {
    protected double ReleaseSales;
    protected double TotalSales;

    public GameSale(double ReleaseSales, double TotalSales, int ID, String GameName, String DevelopmentCompany, String GameType) {
        super(ID, GameName, DevelopmentCompany, GameType);
        this.ReleaseSales = ReleaseSales;
        this.TotalSales = TotalSales;
    }

    public void SetReleaseSales(double RelSale){
        this.ReleaseSales=RelSale;
        
    }
     public void SetTotalSales(double totSales){
        this.TotalSales=totSales;
            }
     
     public double GetReleaseSales(){
         System.out.println("The Release Sales Are "+ReleaseSales );
         return ReleaseSales;
     }
     public double GetTotalSales(){
         System.out.println("The Total Sales Are "+TotalSales);
         return TotalSales;

     }
}

Beantwortet von Alex (vielen Dank, Alter), hier ist eine vorübergehende Korrektur nur für das bisherige Debuggen, indem die Array-Dimensionen außerhalb der Do-While-Schleife initialisiert werden

Main

import java.util.Scanner;

public class GameProject {

  public static void main(String[] args) {

    Scanner input = new Scanner(System. in );
    int choice;
    GameSale[] games = new GameSale[1];

    do {
      System.out.println("Hello! welcome to the menu!");
      System.out.println("Please Choose your option!");
      System.out.println(" 1-Enter a new game's Info \n 2-Check a game's Information \n 3- Check a game's sales \n 0-Exit");
      choice = input.nextInt();
      switch (choice) {
      case 0:
        break;
      case 1:

        for (int i = 0; i < games.length; i++) {
          System.out.print("Enter Game " + (i + 1) + "'s Name!: \n");
          String tempname = input.next();
          System.out.print("Enter the ID of the Game : \n");
          int tempid = input.nextInt();
          System.out.print("Enter the Game Type : \n");
          String tempgametype = input.next();
          System.out.print("Enter the development Company's Name : \n");
          String tempgamecomp = input.next();
          System.out.print("Enter the Release Sale : \n");
          double temprelsale = input.nextDouble();
          System.out.print("Enter the total Sales : \n");
          double temptotsale = input.nextDouble();
          games[i] = new GameSale(temprelsale, temptotsale, tempid, tempname, tempgamecomp, tempgametype);
        }
        break;
      case 2:
        for (int i = 0; i < games.length; i++) {
          System.out.println(games[i].toString());
        }

      }
    } while ( choice != 0 );
  }
}

Spiel Information

public class GameInfo {

    protected int ID;
    protected String GameName;
    protected String DevelopmentCompany;
    protected String GameType;
    
    public GameInfo(int ID, String GameName, String DevelopmentCompany, String GameType) {
        
        this.ID = ID;
        this.GameName = GameName;
        this.DevelopmentCompany = DevelopmentCompany;
        this.GameType = GameType;
    }
        
    public void SetID(int id) {
        this.ID = id;
    }

    public int GetID() {
        System.out.println("The ID is " + ID);
        return ID;
    }

    public void SetName(String Name) {
        this.GameName = Name;
        
    }

    public String GetName() {
        System.out.println("The Name of the Game Is " + GameName);
        return GameName;

    }

    public void SetCompanyName(String CompanyName) {
        this.DevelopmentCompany = CompanyName;
        
    }

    public String GetCompanyName() {
        System.out.println("The Name Of the Development company Is " + DevelopmentCompany);
        return DevelopmentCompany;
    }
    public void SetGameType(String GameType){
        this.GameType=GameType;
        
    }
    public String GetGameType(){
        System.out.println("The Game Type is : "+GameType);
        return GameType;
    }
}

Spielverkauf

public class GameSale extends GameInfo {
    protected double ReleaseSales;
    protected double TotalSales;

    public GameSale(double ReleaseSales, double TotalSales, int ID, String GameName, String DevelopmentCompany, String GameType) {
        super(ID, GameName, DevelopmentCompany, GameType);
        this.ReleaseSales = ReleaseSales;
        this.TotalSales = TotalSales;
    }

    public void SetReleaseSales(double RelSale){
        this.ReleaseSales=RelSale;
        
    }
     public void SetTotalSales(double totSales){
        this.TotalSales=totSales;
            }
     
     public double GetReleaseSales(){
         System.out.println("The Release Sales Are "+ReleaseSales );
         return ReleaseSales;
     }
     public double GetTotalSales(){
         System.out.println("The Total Sales Are "+TotalSales);
         return TotalSales;

     }

 
     public String toString(){
    return this.ID + " " + this.GameName + " " + this.DevelopmentCompany + " " + this.GameType;
}}
Daniel

Wenn Sie die Informationen eines Spiels in Fall 2 an einem bestimmten Index drucken möchten:

if (game == null) { // Break if no game exists
    System.out.println("There is no games to show!");
    break;
}
System.out.print("Enter game index to show information: ");
int index = input.nextInt();
// Break if index is not in bounds
if (index < 0 || index > game.length) {
    System.out.println("Incorrect index");
    break;
}

System.out.println("Info of game: " + game[index].toString());

Dieser Code sollte nach einem Index als Eingabe fragen und die Informationen des Spiels drucken. Es wird "Es gibt keine Spiele zum Anzeigen!" wenn noch kein Spiel hinzugefügt wurde

Beachten Sie, dass Sie die toString () -Methode in Ihrer GameSale-Klasse hinzufügen müssen:

@Override
public String toString() {
    return "ID: " + this.ID + " Name: " + this.GameName + " Development Company: " + 
      this.DevelopmentCompany + " Game Type: " + this.GameType + " Release Sales: " + ReleaseSales + " Total Sales: " + TotalSales;
}

Verschieben Sie auch die Dekleration der Spielvariablen aus dem Bereich der Do-While-Schleife (darüber), wie sie aussehen wird

GameSale[] game = null; 
do { ...

Wenn Fall 2 alle Spielinformationen anzeigen soll, können Sie den Indexteil durch eine Schleife ersetzen, die das gesamte 'Spiel'-Array durchläuft und den toString jedes Elements druckt.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

So speichern Sie eine Ausgabe eines Arrays aus einer Schleife, ohne sie zu drucken

React JS: Filtern eines Arrays von Objekten durch ein anderes Array von Objekten. So führen Sie vier Funktionen nacheinander aus, inkl. mehrere API-Aufrufe

So geben Sie eine Liste von Objekten aus einer Funktion innerhalb einer Schleife zurück

Drucken Sie 1 Objekt in einer Liste von Objekten in C # aus

So drucken Sie Bilder aus dem Web in einer For-Schleife

So finden Sie alle IDs eines Arrays aus einem Array von Objekten - Javascript

So binden Sie Mitglieder eines Arrays von Objekten aus dem Eingabefeld

JavaScript: Extrahieren Sie aus einem Array von Objekten eines Arrays von Objekten den Wert einer Eigenschaft als Array

So drucken Sie den Einzelpreis eines Artikels in einer Einkaufsliste aus

So drucken Sie den Wert eines Zeigers aus einer Struktur

So erhalten Sie eine Liste eines bestimmten Felds aus einer Liste von Objekten in Powershell

Drucken aus einer Schleife

So filtern Sie die Daten aus mehreren Arrays von Objekten

Drucken eines nummerierten assoziativen Arrays aus einer MySQLi-Abfrage in einer Schleife

So erhalten Sie in einer for-Schleife nur eine Reihe von Werten aus Arrays

Drucken Sie alle Permutationen eines Arrays aus

So ermitteln Sie den Durchschnitt aus einer Reihe von Objekten

So drucken Sie Schlüssel und Wert eines Arrays von Objekten

C # - So extrahieren Sie eine Liste eines bestimmten Array-Mitglieds aus einer Liste von Arrays

So drucken Sie ausgewählte Werte aus einer Liste mit einer while-Schleife

So drucken Sie eine Verkettung eines Strings mit einer Liste von Strings in einer Schleife

So drucken Sie Sonderzeichen aus einer Textdatei

So drucken Sie den Prozessnamen eines Prozesses aus dem Multiprocessing-Pool von Python aus

So senden Sie eines von vielen Formularen, die aus einer Schleife generiert wurden, indem Sie auf Text klicken

Erstellen eines Arrays von Arrays aus einem Array von Objekten

Drucken Sie das Gegenteil einer Leiter in einer Schleife aus

So drucken Sie eine bestimmte Nachricht aus, wenn innerhalb einer for-Schleife nichts übereinstimmt

So drucken Sie die Häufigkeit jedes einzelnen Wortes aus einer Zeichenfolge mit for-Schleife in Python

So drucken Sie alle Zeichenfolgen aus der angegebenen Anzahl mit einer verschachtelten Schleife in Python

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv