Benutzer-Werkzeuge

Webseiten-Werkzeuge


g9:uebungen:konstruktoren:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
g9:uebungen:konstruktoren:start [2021/01/20 17:44] – angelegt Martin Pabstg9:uebungen:konstruktoren:start [2022/06/30 07:43] (aktuell) – [Das Schlüsselwort "this"] Martin Pabst
Zeile 1: Zeile 1:
 ====== Konstruktoren ====== ====== Konstruktoren ======
- 
-{{youtube>y0az0x-mHx4?medium}} 
- 
 Wir haben inzwischen schon viele Objekte instanziert, oft auch mit der Angabe von Parametern. Das folgende Programm instanziert beispielsweise ein Objekt der Klasse ''Rechteck'' und übergibt die Parameter (50, 50, 400, 300) für die Koordinaten der linken oberen Ecke (50, 50), die Breite (400) und die Höhe (300). Wir haben inzwischen schon viele Objekte instanziert, oft auch mit der Angabe von Parametern. Das folgende Programm instanziert beispielsweise ein Objekt der Klasse ''Rechteck'' und übergibt die Parameter (50, 50, 400, 300) für die Koordinaten der linken oberen Ecke (50, 50), die Breite (400) und die Höhe (300).
 <HTML> <HTML>
Zeile 67: Zeile 64:
  
 <script type="text/plain" title="Beispiel.java"> <script type="text/plain" title="Beispiel.java">
-Buntstift rotstift = new Buntstift(Color.red);+Buntstift rotstift = new Buntstift(0xff0000);
 rotstift.schreibe("Hallo Welt!"); rotstift.schreibe("Hallo Welt!");
  
-Buntstift grünstift = new Buntstift(Color.lime);+Buntstift grünstift = new Buntstift(0x00ff00);
 grünstift.schreibe("Das ist grün"); grünstift.schreibe("Das ist grün");
 rotstift.schreibe("Das ist wieder rot"); rotstift.schreibe("Das ist wieder rot");
Zeile 76: Zeile 73:
 class Buntstift { class Buntstift {
  
-   Color farbe;+   int farbe;
  
    // Das ist die Konstruktor-Methode ("der Konstruktor") dieser Klasse. Du erkennst sie daran,     // Das ist die Konstruktor-Methode ("der Konstruktor") dieser Klasse. Du erkennst sie daran, 
    // dass sie den Bezeichner der Klasse ("Buntstift") trägt und kein Rückgabedatentyp angegeben ist.    // dass sie den Bezeichner der Klasse ("Buntstift") trägt und kein Rückgabedatentyp angegeben ist.
-   Buntstift(Color farbe1) {+   Buntstift(int farbe1) {
       farbe = farbe1;       farbe = farbe1;
    }    }
Zeile 121: Zeile 118:
 <div class="java-online" style="height: 500px; width: 100%" data-java-online="{'withBottomPanel': true, 'id': 'Konstruktoren3'}"> <div class="java-online" style="height: 500px; width: 100%" data-java-online="{'withBottomPanel': true, 'id': 'Konstruktoren3'}">
 <script type="text/plain" title="Beispiel.java"> <script type="text/plain" title="Beispiel.java">
-Buntstift rotstift = new Buntstift(Color.red);+Buntstift rotstift = new Buntstift(0xff0000);
 rotstift.schreibe("Hallo Welt!"); rotstift.schreibe("Hallo Welt!");
  
 class Buntstift { class Buntstift {
  
-   Color farbe;+   int farbe;
  
-   public Buntstift(Color farbe) {+   public Buntstift(int farbe) {
       farbe = farbe;       farbe = farbe;
    }    }
Zeile 150: Zeile 147:
 farbe = farbe; farbe = farbe;
 </code> </code>
-in Zeile 9, dass der Wert des Parameters ''farbe'' mit seinem eigenen Wert überschrieben wird. Der Wert des **Attributs** ''farbe'' wird nicht verändert, bleibt also ''null'' und führt so in Zeile 13 zum Fehler. \\ \\ +in Zeile 9, dass der Wert des Parameters ''farbe'' mit seinem eigenen Wert überschrieben wird. Der Wert des **Attributs** ''farbe'' wird nicht verändert, bleibt also ''0'' und führt so in Zeile 13 zum Fehler. \\ \\ 
 Wir müssen dem Compiler irgendwie mitteilen, dass der Bezeichner ''farbe'' auf der linken Seite der Zuweisung für das **Attribut** ''farbe'' steht, nicht für den Parameter ''farbe''. Dies können wir mithilfe des Schlüsselwortes ''this'' erreichen: ''this'' steht nämlich immer für dasjenige Objekt, //"in dem"// wir uns gerade befinden. Im Bereich Zeile 8 - 10 also für das Objekt, das gerade erzeugt wird. ''this.farbe'' ist damit eindeutig dessen **Attribut** farbe. Wir ersetzen Zeile 9 also durch Wir müssen dem Compiler irgendwie mitteilen, dass der Bezeichner ''farbe'' auf der linken Seite der Zuweisung für das **Attribut** ''farbe'' steht, nicht für den Parameter ''farbe''. Dies können wir mithilfe des Schlüsselwortes ''this'' erreichen: ''this'' steht nämlich immer für dasjenige Objekt, //"in dem"// wir uns gerade befinden. Im Bereich Zeile 8 - 10 also für das Objekt, das gerade erzeugt wird. ''this.farbe'' ist damit eindeutig dessen **Attribut** farbe. Wir ersetzen Zeile 9 also durch
 <code learnj> <code learnj>
Zeile 159: Zeile 156:
 <div class="java-online" style="height: 400px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Konstruktoren4'}"> <div class="java-online" style="height: 400px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Konstruktoren4'}">
 <script type="text/plain" title="Beispiel.java"> <script type="text/plain" title="Beispiel.java">
-Buntstift rotstift = new Buntstift(Color.red);+Buntstift rotstift = new Buntstift(0xff0000);
 rotstift.schreibe("Hallo Welt!"); rotstift.schreibe("Hallo Welt!");
  
 class Buntstift { class Buntstift {
  
-   Color farbe;+   int farbe;
  
-   public Buntstift(Color farbe) {+   public Buntstift(int farbe) {
       this.farbe = farbe;       this.farbe = farbe;
    }    }
g9/uebungen/konstruktoren/start.1611161096.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki