[Java] Statischen und dynamischen Typ von Referenzvariablen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von sun0025, 4. Januar 2011 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 4. Januar 2011
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Statischen und dynamischen Typ von Referenzvariablen

    Hi,

    ich hab folgende Aufgabe gestellt bekommen komm aber leider nicht wirklich weiter bzw. find nicht so wirklich einen ansatz. Kann mir das vllt. jemand helfen ?


    Aufgabe 8.3 Statischen und dynamischen Typ von Referenzvariablen unterscheiden
    Öffnet das Projekt Zahlensaecke und schaut euch das Interface Zahlensack an. Die drei implementierenden Klassen setzen die im Interface geforderte Funktionalität mit verschiedenen Mitteln um. Was in den Klassen genau passiert, ist für uns nicht wichtig, wir wollen sie nur benutzen.

    8.3.1 Schreibt eine Klasse Lotto mit einer Methode sechsAus49(), welche sechs verschiedene Zufallszahlen im Bereich 1-49 auf der Konsole ausgibt. Verwendet dazu einen Zahlensack.

    DAS PROJEKT

    so far
    sun
     
  2. 4. Januar 2011
    AW: Statischen und dynamischen Typ von Referenzvariablen

    Hi,

    erstmal natürlich die Frage nach deinen Kenntnissen.

    Als nächstes ganz einfach die Beschreibung wie du das löst.

    Ein Zahlensack soll hier ein "Sack" voller Zahlen sein. Die größe dabei kannst du selbst bestimmen (von 0 bis n-1).
    Aus diesem Sack kannst du nun eine zufällige Zahl ziehen.

    Lotto ist hier ein sehr gutes Beispiel.
    Denn in dem Lottobehälter sind ja erst 49 Zahlen, wird die erste gezogen, dann sind danach nur noch 48 Zahlen im Behälter. Danach nur noch 47 usw. Allerdings muss man auch beachten das die Zahlen die vorher gezogen wurde eben nicht noch einmal vorkommt.

    Solch ein algorithmus kann man eben auf unterschiedliche Art und weiße schreiben.
    Das sollst du hier nun tun.
    Lustig finde ich, dass die Lösung für das Problem im Grunde ja mit der Aufgabe mitgesendet wurde. Immerhin machen die 3 Klassen ja nix anderes, sofern sie denn vollständig sind.

    Also im Grunde wärst du hier mit 3 Zeilen fertig
     
  3. 4. Januar 2011
    AW: Statischen und dynamischen Typ von Referenzvariablen

    Okay ich dank dir erstmal für diene hilfe!!!

    >Mein Problem ist aber das ich nicht weiß wie ich sozusagen einen sack erzeugen kann der erst 49 elemente enthält und wie ich dann dort erstmal 1 zahl zufällig auswähle ?

    so far
    sun
     
  4. 4. Januar 2011
    AW: Statischen und dynamischen Typ von Referenzvariablen

    hi,

    dass ist einfach

    Code:
    Zahlensack zs = new Naiv(49);
    //oder
    Zahlensack zs = new Permutation(49);
    //oder
    Zahlensack zs = new Auswahl(49);
    
    //und eine Zahl bekommst du dann so:
    int zufallsZahl = zs.entferneZahl();
    
    edit:
    ach und ich hab mich geirrt, du sollst ja scheinbar so einen Algorithmus gar nicht schreiben, sondern nur einen der drei vorhandenen nutzen.
     
  5. 4. Januar 2011
    AW: Statischen und dynamischen Typ von Referenzvariablen

    Demnach kann ich also aus der Klasse Naiv das richtige schon benutzen also folgendermaßen:

    Im meiner Klasse lotto kann ich ja dann folgendes in Konstruktor schreiben:

    Code:
    Naiv.Naiv(int groesse);
    Naiv.int entferneZahl();
    
    Dann müsste ja beim erzeugen eines exemplares eine Sack einer größe die man wählen kann erzeugt werden und davon eine zahl zufällig ausgewählt werden oder ?
     
  6. 5. Januar 2011
    AW: Statischen und dynamischen Typ von Referenzvariablen

    Wie ich sehe scheinst du dich nicht ganz so mit der Materie auszukennen.
    Was nicht böse gemeint ist.
    Lies doch vielleicht mit das online Buch "Java ist auch eine Insel"
    Galileo Computing :: Java ist auch eine Insel - index

    Immerhin gehts ja nicht nur darum die Aufgaben zu lösen, sondern auch das dahinter zu verstehen.
    Deswegen sagte ich ja auch bei meinem ersten Posting, dass dein Wissensstand interssant wäre. Sonst weiß man nicht wie man es erklären soll

    Also im Grunde brauchst du keinen Konstruktor für deine Klasse Lotto.
    Du brauchst dort nur die main Methode.

    Dort erstellst du ein Objekt vom Typ Naiv, Permutation oder Auswahl.
    Diese drei genannten Klassen implementieren ja die Klasse Zahlensack.

    Beim erstellen eines dieser Objekte gibst du die Größe des Sackes an.
    Du erstellst ein neues Objekt so:
    new Naiv(zahl);
    wobei eben zahl die Anzahl der Zahlen in dem Sack ist.
    Damit du das ganze aber aufrufen kannst, musst du das "in eine Variable" packen.
    Dazu legst du dir eine Variable vom Typen Zahlensack an:
    Code:
    Zahlensack meinSack;
    
    und dann einfach
    Code:
    meinSack = new Naiv(zahl);
    
    Das erstellt also einen neuen Zahlensack der mit der "Naiv" Methode generiert wird mit der Größe zahl

    um nun aus dem Sack eine Zahl zu bekommen musst du dann also schreiben
    Code:
    meinSack.entferneZahl();
    
    Wenn du die Zahl in eine Variable stecken willst dann so:
    Code:
    int zufallsZahl = meinSack.entferneZahl();
    
     
  7. 5. Januar 2011
    AW: Statischen und dynamischen Typ von Referenzvariablen

    okay habs jetzt raus vielen dank für deine Hilfe!!!

    so far
    sun
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.