Methoden Geschwister nennen(Array)

Taberl

Mitglied
Hallo liebe Leser ,
ich habe ein Problem und zwar muss als Hausaufgabe , Personen erstellen , sie verheiraten lassen sie kinder "bekommen lassen". Dies habe ich schon alles erledigt jedoch stehe ich vor einem Problem und zwar soll ich jetzt ein Kind aufrufen können und dieses soll die Geschwister nennen können. Die kinder befinden sich in einem Array was schon erstellt ist. Ich wollte jetzt nur mal wissen wie ich das ganze angehen soll. Ich habe schon mal mit einer Get-Methode angefangen.Falls ihr noch mehr braucht schreibt einfach.Danke für jede Hilfe.Hier ist mein Programmcode:

package menschen;
public class Mensch extends Person {
static final int MAX_KINDER=10;
Mensch vater;
Mensch mutter;
Mensch[] kinder;

public Mensch(String v, boolean mann, Mensch papa, Mensch mama){
super(v, papa.vorname, mann);
vater=papa;
mutter=mama;
kinder=new Mensch[MAX_KINDER];
papa.kinder[papa.kinderanzahl()]=this;
mama.kinder[mama.kinderanzahl()]=this;
}

public Mensch(String v, String n, boolean mann){
super(v, n,mann);
kinder=new Mensch[MAX_KINDER];
}

public int Kinderanzahl(){
int i=0;
while(kinder!=null) ++i;
return i;
}

public String toString(){
String s=vorname+" "+vorname;
if(mutter!=null) s+=", Mutter: "+mutter.vorname;
return s;
}

public Mensch[]getGeschwister(){



}
 

Anhänge

  • Menschen.java
    418 Bytes · Aufrufe: 4
  • Mensch.java
    839 Bytes · Aufrufe: 4
  • Person.java
    409 Bytes · Aufrufe: 6

JavaMeister

Gesperrter Benutzer
Wieso keine JavaTags? - Wieso liest man sich Foreninformationen nicht durch, bevor man es nutzt?

Java:
public Mensch[]getGeschwister(){

return kinder;

}
 

Taberl

Mitglied
Jedoch wenn ich es so versuche würde doch alle kinder ausgeben, jedoch wenn ich ein kind fragen würde , sollte er sich nicht selbst nennen.
Wäre hier ein if angebracht und wie bekomme ich das am besten hin
Danke für die antworten
 

JavaMeister

Gesperrter Benutzer
Weiß ich nicht... Ich würde ja sagen, dass das Kind gar nicht in der Menge enthalten ist.

Ansonsten musst du versuchen mitzuarbeiten. Ich habe einen fertigen Code gepostet. Wenn dir das nicht ausrecht, wirst du schon mehr machen müssen.
 

Taberl

Mitglied
Java:
public Mensch[]getGeschwister(){
              geschwister=new Mensch[MAX_KINDER];
              for(int i=0;i>=kinder.length;i++)
                  if(this.kind!=this.kinder[i]){
                     for(int j=0;j>=geschwister.length;j++)
                      this.kind=geschwister[j];
               return geschwister;

Vielleicht ist der Code auch totaler Mist, (könnte auch an meiner Erkältung liegen die mich etwas außer Gefecht setzt :( ) aber mein Versuch war es das er den Kinder Array durchläuft und überprüft ob er nicht das Kind ist, falls es nicht die selben Personen sind soll er in ein neues Array was ich dann später zurückgebe.
Kann den Code gerade nicht testen mein, weil mein netbeans spinnt ,deswegen frage ich hier nochmal nach.
 

JavaMeister

Gesperrter Benutzer
Sorry, das ist kein Compiler Forum.

Kuriere dich erstmal aus und komme wieder, wenn du bereit bist hier 100 % deiner Enerige reinzustecken.

Der Code enthält so natürlich Fehler.

Neben dem von mir nicht einzuschäzenden fachlichen Zweifelheiten, sehe ich hier

this.kind = gechwister[j].

Zugewiesen wird in java von rechts nach links.
 

Taberl

Mitglied
Vielen Dank für die schnelle Antwort jedoch muss das Ganze heute fertig werden, da ist leider keine Zeit zum auskurieren.Achso natürlich hatte ich das mit dem "von rechts nach links" total außer Acht gelassen. Ich werde dies nochmal korrigieren, natürlich bin ich bereit 100% meiner Energie zu investieren, jedoch bin ich noch Anfänger und wende mich deshalb an ein Forum. Ich mache das nicht um meine Hausaufgaben von anderen Leuten gemacht zu kriegen,sondern eher einige Tipps zu bekommen, wo mein Fehler liegt oder wo ich den jetzt nochmal genauer hinschauen soll. Deshalb poste ich meinen Java Code um zu sehen, ob jemand Dinge sieht die ich übersehen habe. Danke nochmal für die Hilfe ich werde es dann wohl oder übel ohne einmal testen abschicken ;D aber ,das ist mein Problem. Ich will nur wissen ob das so klappen würde :D
 

Taberl

Mitglied
Achso hab ich total vergessen, ich habe meinen Code nochmal überarbeitet. Mir ist aufgefallen das ich ja nicht das Kind in das Geschwister Array haben will , sondern eines seiner Geschwister aus dem kinder Array. Also einen Fehler gefunden und ausgebügelt :D.
Java:
public Mensch[]getGeschwister(){
    geschwister=new Mensch[MAX_KINDER];
    for(int i=0;i>=kinder.length;i++)
        if(this.kinder[i]!=this.kind)
            for(int j=0;j>=geschwister.length;j++)
                geschwister[j]=kinder[i];
                return geschwister;
 

JavaMeister

Gesperrter Benutzer
Nun, möglicherweise lässt sich das kompilieren.... Funktionieren wird es nicht.

Ich schlage vor dein Netbeans zum laufen zu bringen... Welchen Fehler gibt es hier?
 

Taberl

Mitglied
Java:
java.lang.NoClassDefFoundError: menschen/Menschen (wrong name: Menschen/Menschen)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Exception in thread "main" Java Result: 1
Diesen Fehler bekomme ich jedes mal angezeigt
 

Taberl

Mitglied
okay Dankeschön sehe auch gerade das mein Code nicht klappt :D schade eigentlich aber gut ich habe jetzt eh keine Zeit mehr das rechtzeitig zu machen. Also danke für deine Unterstützung und viel Erfolg weiterhin.
 

Neue Themen


Oben