tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
204
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    phreeak phreeak ist offline Mitglied Bronze
    Registriert seit
    Nov 2011
    Beiträge
    32
    Weiss nicht genau wie ich das Thema nennen soll.


    Mal angenommen man hat 4 Klassen.

    Eine Superklasse Names Spieler und 2 Subklassen Mensch und Computer. Alles mit Extends versteht sich..

    Dazu eine Klasse Spielsteuerung.

    So meine Frage,

    wenn man nun ne Variable macht mit

    Code java:
    1
    
    Spieler aktuell;

    oder ne Methide macht

    Code java:
    1
    
     public Spieler wechselSpieler(Spieler spieler1, Spieler spieler2) {}]

    in der Spielsteuerung. Was macht das "Spieler" genau? Statt nen Datentyp, Void, Static zu nehmen, nimmt man ja den Klassename...

    Man bezieht sich auf die Klasse und der aktueler Spieler, mit dieser Verbunden ist?! Wie bei einem Object, nur ohne "new ...."


    spieler1 und spieler2 werden vorher auch instanziert durch
    Code java:
    1
    
     Mensch spieler1 = new Mensch("Spieler1",'x')

    und

    Code java:
    1
    
    Computer spieler2 = new Computer("Spieler2",'o')
    oder
    Code java:
    1
    
     Mensch spieler2 = new Mensch("Spieler2",'o')

    in einer anderen Methode. Je nachdem welchen Spieltyp man auswählte zuvor.

    Versteh das noch nicht 100%, aber finde dazu auch sonst nix.


    thx im vorraus
    Geändert von phreeak (29.01.12 um 14:52 Uhr)
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Hi

    das hat irgendwie nichts mit OOP zu tun, eher komplette Grundlagen...

    Wenn man das mit int machen würde statt dem Klassennamen,
    wäre es dann klarer?
    Nichts anderes ist das.

    Ein int ist ein Datentyp, der eine kommalose Zahl speichern kann.
    Wenn du eine Klasse Spieler programmierst hast du damit einen weiteren, neuen Datentyp.
    Was der speichern kann und so legst du in der Klasse fest.

    Zum new: Wenn du mit "Spieler xyz;" einen Behälter für den Wert gemacht hast,
    musst/kannst du mit new dann wirklich was reinfüllen.
    Der Behälter kann mit einem =... auch was Anderes zugewiesen bekommen,
    muss nicht immer den ersten Spieler haben.
    Am Anfang ist er aber leer.

    Was int etc. angeht, wenn man da schreibt "=4" gibt es ja schon eine Zahl 4,
    die man in den Behälter steckt. Spieler kann man aber nicht so per Tastatur anschreiben,
    die muss man mit new machen.
    ...oder so, kA wie man das erklären soll.

    Zu Datentypen void und static":
    Nö.
    ein "void xyz; kann man nicht machen.
    Und static ist kein Datentyp.
    if und while sind doch auch keine Datentypen...
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    phreeak phreeak ist offline Mitglied Bronze
    Registriert seit
    Nov 2011
    Beiträge
    32
    ah ok, nun hab ich es verstanden..
    Irgendwie in meinen Notizen zu den Vorlesungen dazu nix mehr gefunden und in den Scripts war auch nix.

    Anscheinend hat der das nicht so wirklich erklärt. (Programmier auch erst seit 3 Monaten) - Mir hats nur einer Kurz erklärt letztens und habs so jetzt ausm Kopf nachgebaut (klappt auch), mir fehlte aber die 100% erklärung wieso. Aber nun weiss ichs. Dachte es mir schon. Wollte aber sicherheit.

    aso das mit void und static war nicht auf den Datentyp bezogen. Hab mich unglücklich ausgedrückt. Meinte, dass man in der Methode statt "public void" oder was auch immer Spieler macht.


    vielen dank
    Geändert von phreeak (29.01.12 um 14:59 Uhr)
     

  4. #4
    EasyEagle EasyEagle ist offline Mitglied
    Registriert seit
    Jan 2012
    Ort
    München
    Beiträge
    19
    Der "Spieler" nach public in der Methodendeklaration

    Code java:
    1
    
    public Spieler wechselSpieler(Spieler spieler1, Spieler spieler2) {}

    ist der Rückgabewert dieser Methode.

    Damit kannst du den Rückgabewert der Methode gleich auf eine Spieler-Instanz schreiben.
    Also so (davon ausgehend, dass die Methode zur Klasse Spielsteuerung gehört):

    Code java:
    1
    2
    
    Spieler aktuellerSpieler = new Spieler();
    aktuellerSpieler = spielSteuerungsInstanz.wechselSpieler(spieler1, spieler2);

    Schau mal in deinen Unterlagen nach Rückgabewert von Methoden, oder hier:
    http://openbook.galileocomputing.de/...7-b56b62f7e302

    lg
     
    http://brain.yubb.de/
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    „Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren.“

Ähnliche Themen

  1. Frage bzgl. system()
    Von redlama im Forum PHP
    Antworten: 2
    Letzter Beitrag: 16.07.07, 14:24
  2. Frage bzgl. SUM
    Von SantaCruze im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 11.02.07, 16:44
  3. Frage bzgl. Kamerafahrt
    Von die-klobrille im Forum Cinema 4D
    Antworten: 7
    Letzter Beitrag: 11.04.05, 16:36
  4. frage bzgl, images
    Von Samuel im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 01.03.02, 16:16