[Progra] [SOLVED] Verzweiflung an PrograHausaufgaben

[Progra] Programmierung
[DSAL] Datenstrukturen und Algorithmen
[SWT] Softwaretechnik
[DB] Datenbanken und Informationssysteme

[SOLVED] Verzweiflung an PrograHausaufgaben

Beitragvon Briedensen » 09.11.13 14:17

Moin Moin,

Ich als Neuling der schönen Programmiersprache Java zerbreche mir seit einigen Tagen den Kopf über ein (hoffentlich leicht zu behebendes) Problem, und habe gehofft ihr könnt mir da weiterhelfen! :)

Und zwar bearbeite ich die PrograHausaufgaben No.2 H5 (bzw T5).
Im Großen und Ganzen geht es darum eine Klasse Person zu erstellen, und die Objekte dieser Klasse mit anderen Objekten der Klasse zu verbinden.
Dazu meine Überlegung:

Bei Erstellung eines Objekts der Klasse "Person" sollte ein Parameter übergeben werden ([...], Person p).
Dieses Parameter soll dann in ein Attribut umgewandelt werden und heißt folgend this.vorgesetzter .

Wenn ich nun allerdings mehrere Objekte erstelle, sie miteinander verbinde und Methoden auf sie aufrufe bekomme ich (laut NetBeans) so nette Ergebnisse wie:

Dieters Vorgesetzter ist: ( dieter.getVorgesetzten().getName() )
Person@471e30 obwohl hier eigentlich Olaf stehen müsste

der Methodenaufruf olaf.getName() führt allerdings zu Olaf. Folglich liegt mein Fehler irgendwo bei der Verknüpfung der Objekte nehme ich an.

Vielen Dank schonmal!
Briedensen :)
Zuletzt geändert von Briedensen am 09.11.13 16:18, insgesamt 1-mal geändert.
Briedensen
 
Beiträge: 5
Registriert: 09.11.13 13:50
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 12/13

Re: Verzweiflung an PrograHausaufgaben

Beitragvon Someguy » 09.11.13 14:46

Falls du tatsächlich noch Anfänger in Java bist würde ich dir da wirklich BlueJ anstelle von Netbeans empfehlen um gerade solche Sachen sehr leicht zu testen. In BlueJ kannst du nämlich einfach ohne jegliche Programmierung von Testausgaben einfach Testobjekte erstellen und auf diesen deine Methoden anwenden und testen.

Und wegen deinem Problem, da wäre Pseudocode oder Ansätze deines Codes hilfreicher, denn rein von der Ausgabe her wüsste ich jetzt auch nicht, was überhaupt verkehrt sein könnte.
Someguy
 
Beiträge: 55
Registriert: 14.10.10 20:47
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 10/11
Anwendungsfach: Philo

Re: Verzweiflung an PrograHausaufgaben

Beitragvon Briedensen » 09.11.13 15:25

Erstmal vielen Dank für die schnelle Antwort. Den Vorschlag mit BlueJ werde ich mir mal durch den Kopf gehen lassen.
Da ich eher selten in Foren unterwegs bin, hoffe ich, dass das nachfolgende korrekt angezeigt wird.
Das ist der komplette Code der Datei.


Code: Alles auswählen
public class Person {
    protected String name;
    protected Person vorgesetzter;
   
    public Person(String n,Person v){
        this.name = n;
        this.vorgesetzter = v;         
    }
   
    public String getName(){
        return this.name;
    }
   
    public Person getVorgesetzten(){
        return this.vorgesetzter;
    }
   
    public Person hoechsterVorgesetzter(){
        if (this.vorgesetzter == null){
            return this;
        }
        else{
            return this.vorgesetzter.hoechsterVorgesetzter();
        }       
    }
   
    public void setBoss(Person p){
        if (this.vorgesetzter == null){
            this.vorgesetzter = p;
        }
        else{
            System.out.println("Diese Person hat bereits einen Vorgesetzten namens");
            System.out.println(this.vorgesetzter.getName());
        }
    }
   
   
   
   
   
    public static void main(String[] args) {
        Person klaus = new Person("Klaus",null);
        Person dieter= new Person("Dieter",klaus);
        Person ute   = new Person("Ute",klaus);
        Person olaf  = new Person("Olaf",dieter);
       
        System.out.println ("Olafs hoechster Vorgesetzter ist:");
        System.out.println (olaf.getVorgesetzten().getName());
       
        ute.setBoss(dieter)                      ;
        System.out.println ("Utes vorgesetzter ist:");
        System.out.println (ute.getVorgesetzten().getName());
       
        System.out.println ("Dieters Vorgesetzter ist:");
        System.out.println (dieter.getVorgesetzten().getName());
       
        System.out.println ("Der Name von klaus lautet:");
        System.out.println (klaus.getName()             );
    }   
}


und die dazu passende Ausgabe lautet:
Code: Alles auswählen
Olafs hoechster Vorgesetzter ist:
Person@471e30
Diese Person hat bereits einen Vorgesetzten namens
Klaus
Utes vorgesetzter ist:
Person@471e30
Dieters Vorgesetzter ist:
Person@471e30
Der Name von klaus lautet:
Klaus
Briedensen
 
Beiträge: 5
Registriert: 09.11.13 13:50
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 12/13

Re: Verzweiflung an PrograHausaufgaben

Beitragvon SJak » 09.11.13 16:04

meine Ausgabe via Eclipse:

Code: Alles auswählen
Olafs hoechster Vorgesetzter ist:
Dieter
Diese Person hat bereits einen Vorgesetzten namens
Klaus
Utes vorgesetzter ist:
Klaus
Dieters Vorgesetzter ist:
Klaus
Der Name von klaus lautet:
Klaus
SJak
 
Beiträge: 1
Registriert: 09.11.13 16:00
Studiengang: ?
Studiert seit: ?

Re: Verzweiflung an PrograHausaufgaben

Beitragvon Briedensen » 09.11.13 16:17

SJak hat geschrieben:meine Ausgabe via Eclipse:

Code: Alles auswählen
Olafs hoechster Vorgesetzter ist:
Dieter
Diese Person hat bereits einen Vorgesetzten namens
Klaus
Utes vorgesetzter ist:
Klaus
Dieters Vorgesetzter ist:
Klaus
Der Name von klaus lautet:
Klaus



Dann sage ich mal Danke und Problem gelöst :P
Warum auch immer da sowas komisches raus kommt, vielleicht bleibe ich am Anfang doch lieber noch bei BlueJ.
Danke an alle für die schnellen Antworten.
Briedensen
 
Beiträge: 5
Registriert: 09.11.13 13:50
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 12/13

Re: [SOLVED] Verzweiflung an PrograHausaufgaben

Beitragvon Someguy » 09.11.13 20:29

Danke für das Nutzen des Forums und nicht von Fac.... :D
Someguy
 
Beiträge: 55
Registriert: 14.10.10 20:47
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 10/11
Anwendungsfach: Philo


Zurück zu Praktische Informatik