Objekteingabe wiederholen

eclipseworker

Bekanntes Mitglied
Ich habe eine Klasse Hundebesitzer der bei der Erzeugung ein Objekt der Klasse Hund bekommt. Gehört der Hund schon jemanden soll man sich einen anderen suchen. Ich habe versucht das ganze wie bei Datentypen zu machen irgendwie haut das nicht hin.
Bei Int sieht es ja so aus:
Java:
import java.util.*;
...
Scanner sc = new Scanner (System.in);
while (sc.hasNext() && !sc.hasNextInt()) {
			sc.next();
			System.out.println("Geben Sie den PIN als Zahl ein!");
	  } 
int zahl = sc.nextInt();
...
Dem entsprechend habe ich versucht das für Hundbesitzer folgendes veruscht:
Java:
import java.util.*;
private String hundebesitzername;
private Hund hund;

public Hundebesitzer(String hundebesitzername, Hund Hund)
    {
        this.hundebesitzername=hundebesitzername;
        hund=Hund;
        if(hund.getBesitzer()==null){
           hund.andereBesitzer(this);
        } else{
            System.out.println("Dieser Hund gehoert schon "+hund.getBesitzer().hundebesitzername()+
            ". Waehlen Sie einen anderen Hund.");
            hund=null;
            Scanner sc=new Scanner;
           while(hund=null){
                 sc.next();
                  while (sc.hasNext() && sc.hasNextHund()){
                  System.out.println("Bitte geben Sie einen Hund ein.");
                  sc.next();
                    }
                   if(sc.nextHund.getBesitzer()==null){
                hund=sc.nextHund();
                 }
           }
      }
   }
....
Das ist zwar sehr falsch aber ich glaube man sieht auf was ich raus will. Wie bekomme ich das hin?
Der Hund sieht im Code so aus:
Java:
public class Hund
{
    private String hundename;
    private Hundebesitzer besitzer;
    public long belohnung;
    public long zu;
    private long erfolg;

    /**
     * Konstruktor für Objekte der Klasse Hund
     */
    public Hund(String hundename)
    {
        this.hundename=hundename;
        belohnung=0;
        besitzer=null;
    }
    
    /**
     * Gibt den Besitzer retur.
     */
    public Hundebesitzer getBesitzer(){
        return besitzer;
    }
    
    /**
     * Aendert den Besitzer. 
     */
    public void andereBesitzer(Hundebesitzer b){
          besitzer=b;
    }
    
    /**
     * Gibt den Hundenamen retur.
     */
    public String gethundename(){
        return hundename;
    }
    
    
    /**
     * Der Hund gehorcht zufaellig wenn er das Kommado kennt. 
     * Ist die Zufallszahl groesser 4 oder ungerade macht er das.
     * Hat man was 100mal richtig traniert kann er es.
     */
    public boolean regariere(String kommando){
        long zufall=(long)(Math.random()*4+1);
        erfolg=zufall+belohnung/100;
        if(kommando=="Sitz"){
              if(erfolg>4 || erfolg%2==1){
                belohnung=belohnung+1;
                zu=belohnung-1;
                System.out.println(hundename+" signalisiert ich sitze.");
                return true;
              } else{
                  System.out.println(hundename+" regt sich nicht.");
                  return false;
              }
        } else if (kommando=="Platz"){
            if(erfolg%2==1){
                belohnung=belohnung+1;
                zu=belohnung-1;
                System.out.println(hundename+" signalisiert ich liege.");
                return true;
           } else{
               System.out.println(hundename+" regt sich nicht.");
              return false;
           }
        } else{
            System.out.println("Wuff?");
            return false;
        }
    }

    public String hundename()
    {
        return hundename;
    }
}
 

Michael...

Top Contributor
Da hast Du aber ein grundlegendes Problem: Scanner hat keine Methode um Hunde über die Konsole einzulesen ;-)
Ist das eine Schulaufgabe?
Ja: Dann musst Du Dir einen anderen Weg überlegen. z.B eine Liste mit Hunden und der Anwender muss den Index des Hundes eingeben, denn er gerne dem Hundebesitzer zuweisen würde.
Nein: Versuche es mal mit anderen Themen oder fange an die mit GUIs zu beschäftigen, das sind die Möglichkeiten der Benutzerinteraktion sehr viel vielfältiger ;-)
 

damtre

Aktives Mitglied
Ohne mir deinen Code vollständig angeschaut zu haben:
Kannst du nicht ERST durch alle Hunde durch iterieren und abprüfen ob dieser Hund schon einen Besitzer hat?
Wenn der Hund noch verfügbar ist, dann erzeugst du nen neuen Besitzer mit diesem Hund.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
H 36 Zufallszahlen die sich nicht wiederholen Java Basics - Anfänger-Themen 27
K Zufalsszahl soll sich nicht wiederholen Java Basics - Anfänger-Themen 9
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
D Substring wiederholen Java Basics - Anfänger-Themen 33
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
S Programm läuft nicht weiter, wie Code wiederholen? Java Basics - Anfänger-Themen 2
D Klasse durch eine Schleife wiederholen Java Basics - Anfänger-Themen 1
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
D Java BlueJ Programm wiederholen? Java Basics - Anfänger-Themen 6
K Das Gleiche wiederholen Java Basics - Anfänger-Themen 5
E Wiederholen ? y/n Java Basics - Anfänger-Themen 2
M Falsche Eingabe wiederholen lassen Java Basics - Anfänger-Themen 2
F Befehle wiederholen Java Basics - Anfänger-Themen 7
R eine Methode automatisch wiederholen Java Basics - Anfänger-Themen 12
R Erste Schritte Wie am einfachsten Aufgabe wiederholen Java Basics - Anfänger-Themen 37
N Anfrage- wiederholen Ja oder Nein Java Basics - Anfänger-Themen 12
P Thread in Schleife wiederholen Java Basics - Anfänger-Themen 7
B klasse wiederholen lassen. Java Basics - Anfänger-Themen 5
H OOP Setter im Konstruktor um code nicht zu wiederholen? Java Basics - Anfänger-Themen 2
J Wiederholen? Java Basics - Anfänger-Themen 5
M AudioStream - wiederholen, pausieren und wieder starten Java Basics - Anfänger-Themen 2
B eine Aktion Wiederholen Java Basics - Anfänger-Themen 6
O wiederholen Java Basics - Anfänger-Themen 4
H Eingabe so lange wiederholen bis gültiger Wert eingegeben. Java Basics - Anfänger-Themen 7
E Nach einer gewissen Zeit wiederholen Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben