g9:uebungen:attribute:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
g9:uebungen:attribute:start [2021/12/29 11:29] – Externe Bearbeitung 127.0.0.1 | g9:uebungen:attribute:start [2022/06/30 07:38] – [Beispiel 2: Klassen mit Attributen und Methoden] Martin Pabst | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
</ | </ | ||
- | ===== Beispiel 1: Die Klasse | + | ===== Beispiel 1: Die Klasse |
- | Wir beginnen mit einem künstlichen - dafür aber sehr einfachen - Beispiel: Einer Klasse '' | + | Wir beginnen mit einem künstlichen - dafür aber sehr einfachen - Beispiel: Einer Klasse '' |
- | <WRAP center round tip 60%> | + | |
- | Unter Programmierern ist es '' | + | |
- | </ | + | |
< | < | ||
Zeile 17: | Zeile 14: | ||
<script type=" | <script type=" | ||
- | Person fritzi | + | Tier s = new Tier(); |
- | fritzi.name = "Fritzi Fleißig"; | + | s.name = "Snoopy"; |
- | fritzi.geschlecht | + | s.art = "Katze"; |
- | fritzi.größe | + | s.anzahlBeine |
- | Person max = new Person(); | + | Tier g = new Tier(); |
- | max.name = "Max Munter"; | + | g.name = "Gerda"; |
- | max.geschlecht | + | g.art = "Huhn"; |
- | max.größe | + | g.anzahlBeine |
- | println(" | + | println(s.name); |
- | println("Max ist " + max.größe + " m groß." | + | println(g.anzahlBeine); |
- | class Person | + | class Tier { |
| | ||
- | | + | |
- | double größe; | + | int anzahlBeine; |
} | } | ||
</ | </ | ||
Zeile 41: | Zeile 38: | ||
<WRAP center round info 80%> | <WRAP center round info 80%> | ||
**Deklaration von Attributen: | **Deklaration von Attributen: | ||
- | Attribute werden deklariert, indem man auf oberster Ebene innerhalb der Klassendeklaration (also **nicht** innerhalb einer Methode!) den Datentyp des Attributs gefolgt von seinem Bezeichner schreibt, z.B. | + | Attribute werden deklariert, indem man auf oberster Ebene innerhalb der Klassendeklaration (also **nicht** innerhalb einer Methode!) den Datentyp des Attributs gefolgt von seinem Bezeichner schreibt. |
- | <code myJava> | + | |
- | class Person { | + | |
- | | + | |
- | | + | |
- | | + | |
- | } | + | |
- | </ | + | |
Es ist auch möglich, bei der Attributdeklaration einen Anfangswert anzugeben, z.B. | Es ist auch möglich, bei der Attributdeklaration einen Anfangswert anzugeben, z.B. | ||
<code myJava> | <code myJava> | ||
- | | + | |
</ | </ | ||
- | Auf die Attribute von Objekten kann man außerhalb der Klassendeklaration mithilfe der Punktschreibweise zugreifen. Wie das geht, siehst Du im obigen Beispiel | + | Auf die Attribute von Objekten kann man außerhalb der Klassendeklaration mithilfe der Punktschreibweise zugreifen. Wie das geht, siehst Du im obigen Beispiel. |
</ | </ | ||
Zeile 62: | Zeile 52: | ||
Attributdeklarationen und Methodendeklarationen dürfen innerhalb einer Klassendeklaration beliebig hintereinander stehen. Es ist aber üblich, **gleich zu Beginn** einer Klassendeklaration **alle Attribute** der Klasse zu deklarieren und danach erst die Methoden. \\ \\ | Attributdeklarationen und Methodendeklarationen dürfen innerhalb einer Klassendeklaration beliebig hintereinander stehen. Es ist aber üblich, **gleich zu Beginn** einer Klassendeklaration **alle Attribute** der Klasse zu deklarieren und danach erst die Methoden. \\ \\ | ||
- | <code myJava> | ||
- | class Person { | ||
- | | ||
- | | ||
- | | ||
- | |||
- | // Jetzt kommt eine Methodendeklaration: | ||
- | void schreibeName(){ | ||
- | println(name); | ||
- | } | ||
- | } | ||
- | </ | ||
Innerhalb von Methodendeklarationen kann man auf Attribute wie auf gewöhnliche Variablen durch Angabe ihres Bezeichners zugreifen. Du siehst das im obigen Beispiel in der Anweisung '' | Innerhalb von Methodendeklarationen kann man auf Attribute wie auf gewöhnliche Variablen durch Angabe ihres Bezeichners zugreifen. Du siehst das im obigen Beispiel in der Anweisung '' | ||
Zeile 87: | Zeile 65: | ||
<script type=" | <script type=" | ||
- | Person fritzi | + | Tier s = new Tier(); |
- | fritzi.name = "Fritzi Fleißig"; | + | s.name = "Snoopy"; |
- | fritzi.geschlecht | + | s.art = "Katze"; |
- | fritzi.größe | + | s.anzahlBeine |
- | Person max = new Person(); | + | Tier g = new Tier(); |
- | max.name = "Max Munter"; | + | g.name = "Gerda"; |
- | max.geschlecht | + | g.art = "Huhn"; |
- | max.größe | + | g.anzahlBeine |
- | fritzi.schreibeName(); | + | s.stellDichVor(); |
- | fritzi.begrüßen(); | + | g.stellDichVor(); |
- | println(); | + | |
- | max.begrüßen(); | + | |
- | class Person | + | class Tier { |
| | ||
- | | + | |
- | double größe; | + | int anzahlBeine; |
- | | + | |
- | | + | |
- | print(name); | + | println(" |
- | } | + | |
- | + | ||
- | void begrüßen(){ | + | |
- | println(" | + | |
- | if(geschlecht == " | + | |
- | | + | |
- | } else { | + | |
- | | + | |
- | } | + | |
- | println(name + "!"); | + | |
} | } | ||
+ | |||
} | } | ||
</ | </ | ||
Zeile 126: | Zeile 93: | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
- | Führe das Programm schrittweise mit "step into ({{: | + | Führe das Programm schrittweise mit "step into ({{: |
Wenn sich der Aktuelle Ausführungspunkt des Programms (grün hinterlegte Programmzeile) gerade innerhalb einer Methode befindet, wird das Objekt, für das die Methode aufgerufen wurde, immer mit '' | Wenn sich der Aktuelle Ausführungspunkt des Programms (grün hinterlegte Programmzeile) gerade innerhalb einer Methode befindet, wird das Objekt, für das die Methode aufgerufen wurde, immer mit '' | ||
</ | </ | ||
- | |||
- | {{ : | ||
{{ : | {{ : |
g9/uebungen/attribute/start.txt · Zuletzt geändert: 2022/06/30 07:40 von Martin Pabst