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:
Dem entsprechend habe ich versucht das für Hundbesitzer folgendes veruscht:
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:
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();
...
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();
}
}
}
}
....
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;
}
}