Java/Einstieg in die OOP: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
Wechseln zu: Navigation, Suche
(N - Zwischenstand)
 
(Übungen zu den Begrifflichkeiten der OOP)
(Markierung: 2017-Quelltext-Bearbeitung)
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{Fortsetzung|
 +
vorher=Erste Schritte|vorherlink=Java/Erste Schritte|
 +
weiter=Einstieg in die OOP<br>(Online-Bank)|weiterlink=Java/Online-Bank|
 +
übersicht=Einstieg in Java<br>(Übersicht)|übersichtlink=Java#Übersicht|}}
  
 +
== Beispielprojekt "Shapes" ==
 +
Das Figurenbeispiel liegt BlueJ als Beispiel bei. Es findet sich im Installationsordner unter <code>examples/shapes</code>.
  
 +
Herzlichen Dank an Ulrich Helmich, dessen Materialien verwendet werden durften. Zudem lohnt sich ein Blick auf seine Seite, da er dort das Beispiel noch ausführlicher behandelt.
 
* u-helmich.de: [https://www.u-helmich.de/inf/BlueJ/kurs11/Folge02/index02.html Folge 2: Wir programmieren]
 
* u-helmich.de: [https://www.u-helmich.de/inf/BlueJ/kurs11/Folge02/index02.html Folge 2: Wir programmieren]
 +
 +
{{Aufgabe|
 +
# Starten Sie BlueJ und laden Sie das Beispielprojekt "Shapes"(deu.: "Figuren"). Sie finden es im Installationsordner von BlueJ(<code>c:\bluej\examples</code>). In dem weißen Hauptbereich kann man vier [[#Klassen|Klassen]] erkennen: Leinwand, Kreis, Quadrat und Dreieck.
 +
# Klicken Sie mit der rechten Maustaste auf die Klasse Quadrat.
 +
## Rufen Sie dann den Befehl <code>newQuadrat()</code>auf. Mit diesem Befehl erzeugen Sie eine Instanz der Klasse, der sie dann einen Namen geben müssen. Solche Klassen-Instanzen werden auch als [[#Obejte|Objekte]] bezeichnet.
 +
# Von Word her kennen Sie bestimmt Formatvorlagen, von denen Sie beliebig viele Dokumente herstellen können. Ähnlich können Sie in Java aus einer Klasse beliebig viele Objekte ableiten. Erzeugen Sie nun von jeder der Klassen Kreis, Quadrat und Dreieck mindestens ein Objekt.
 +
# Klicken Sie mit der rechten Maustaste auf eines der Objekte. Es erscheint ein Kontextmenü mit vielen Befehlen. Bei den meisten dieser Befehle handelt es sich um Methoden.
 +
# Die wichtigste Methode der Objekte ist <code>sichtbarMachen()</code>.Wählen Sie diese Methode jetzt bitte aus. Es erscheint ein neues Fenster, in dem ein blauer Kreis dargestellt ist. Das ist eindeutig keine Sonne. Die Farbe stimmt nicht, und der Durchmesser ist auch viel zu klein. Im nächsten Schritt ändern Sie den Zustand des Objektes gezielt.
 +
# Rufen Sie die Methode <code>farbeAendern(String neueFarbe)</code> auf. Es erscheint ein Fenster mit einer Editbox, in die Sie die neue Farbe eingeben müssen: "gelb". Achten Sie darauf, dass Sie das Wort "gelb" in Anführungszeichen schreiben. Dann klicken Sie auf den OK-Button - und tatsächlich, die Sonne erscheint jetzt in der Farbe gelb - Sie haben den Zustand des Objektes verändert.
 +
#Rufen Sie <code>groesseAendern(int neuerDurchmesser)</code> auf und geben Sie die Zahl 100 in die Editbox ein. Nun hat der Kreis nicht nur eine andere Farbe, sondern ist auch größer geworden.
 +
# Rufen Sie für jedes Objekt die Methode <code>sichtbarMachen()</code> auf. Es werden dann alle Objekte angezeigt, allerdings an den nahezu gleichen Koordinaten (links oben) und ungefähr in der gleichen Größe.}}
 +
 +
{{Übung|#Versuchen Sie durch geschickten Aufruf verschiedener Methoden das Bild 2 zu erzeugen. Dabei werden Sie den Zustand der vier Objekte solange verändern, bis sie in Größe, Farbe und Position den auf Bild 2 gezeigten Objekten ähneln. Notieren Sie sich die notwendigen Veränderungen, dann werden Sie schneller mit der nächsten Aufgabe fertig.}}
 +
 +
== Grundbegriffe der OOP ==
 +
{{:Java/Glossar}}
 +
 +
== Übungen zu den Begrifflichkeiten der OOP ==
 +
 +
{{Aufgabe|#Erstellen Sie durch das Bewegen der Figuren und das Verändern ihrer Farben folgende Zeichnung:
 +
# Untersuchen Sie die im Projekt „Figuren“ enthaltenden Klassen auf die Methoden und Eigenschaften. Sammeln Sie von jeder Klasse mindestens vier Methoden und vierEigenschaften.}}
 +
 +
{{3Spalten|
 +
'''Dreieck'''
 +
 +
Eigenschaften (Attribute):
 +
 +
<code>xPosition : int</code>
 +
 +
____
 +
 +
____
 +
 +
____
 +
 +
Methoden (Operationen):
 +
 +
<code>farbeAendern(String neueFarbe)</code>
 +
 +
___
 +
 +
___
 +
 +
___
 +
|
 +
'''Quadrat'''
 +
 +
Eigenschaften:
 +
 +
___
 +
 +
___
 +
 +
___
 +
 +
___
 +
 +
Methoden:
 +
|
 +
'''Kreis'''
 +
 +
Eigenschaften:
 +
 +
___
 +
 +
___
 +
 +
___
 +
 +
___
 +
 +
Methoden:
 +
}}
 +
 +
{{Box|Übergabeparameter und Rückgabewert| Stellen Sie bei den folgenden Methoden den Datentyp des Parameters und den Ergebnistyp dar.|Aufgabe}}
 +
 +
{| class="wikitable"
 +
! Methodenkopf !! Datentyp des Übergabeparameters !! Ergebnistyp
 +
|-
 +
| public void horizontalBewegen (int entfernung) || ||
 +
|-
 +
| public void horizontalBewegen (int entfernung) || ||
 +
|-
 +
|public int gibGroesse()Public void loeschen() || ||
 +
|-
 +
|public void groesseAendern(int Hoehe, int Breite) || ||
 +
|}
 +
 +
{{Aufgabe|Beschreiben Sie am Beispiel eines Kartenspiels die Begriffe Klasse, Objekt, Methode und Eigenschaft.    Entwerfen Sie dazu die Klasse Karte.}}
  
 
[[Kategorie:Java]]
 
[[Kategorie:Java]]

Version vom 16. August 2019, 08:25 Uhr

Beispielprojekt "Shapes"

Das Figurenbeispiel liegt BlueJ als Beispiel bei. Es findet sich im Installationsordner unter examples/shapes.

Herzlichen Dank an Ulrich Helmich, dessen Materialien verwendet werden durften. Zudem lohnt sich ein Blick auf seine Seite, da er dort das Beispiel noch ausführlicher behandelt.


Aufgabe
  1. Starten Sie BlueJ und laden Sie das Beispielprojekt "Shapes"(deu.: "Figuren"). Sie finden es im Installationsordner von BlueJ(c:\bluej\examples). In dem weißen Hauptbereich kann man vier Klassen erkennen: Leinwand, Kreis, Quadrat und Dreieck.
  2. Klicken Sie mit der rechten Maustaste auf die Klasse Quadrat.
    1. Rufen Sie dann den Befehl newQuadrat()auf. Mit diesem Befehl erzeugen Sie eine Instanz der Klasse, der sie dann einen Namen geben müssen. Solche Klassen-Instanzen werden auch als Objekte bezeichnet.
  3. Von Word her kennen Sie bestimmt Formatvorlagen, von denen Sie beliebig viele Dokumente herstellen können. Ähnlich können Sie in Java aus einer Klasse beliebig viele Objekte ableiten. Erzeugen Sie nun von jeder der Klassen Kreis, Quadrat und Dreieck mindestens ein Objekt.
  4. Klicken Sie mit der rechten Maustaste auf eines der Objekte. Es erscheint ein Kontextmenü mit vielen Befehlen. Bei den meisten dieser Befehle handelt es sich um Methoden.
  5. Die wichtigste Methode der Objekte ist sichtbarMachen().Wählen Sie diese Methode jetzt bitte aus. Es erscheint ein neues Fenster, in dem ein blauer Kreis dargestellt ist. Das ist eindeutig keine Sonne. Die Farbe stimmt nicht, und der Durchmesser ist auch viel zu klein. Im nächsten Schritt ändern Sie den Zustand des Objektes gezielt.
  6. Rufen Sie die Methode farbeAendern(String neueFarbe) auf. Es erscheint ein Fenster mit einer Editbox, in die Sie die neue Farbe eingeben müssen: "gelb". Achten Sie darauf, dass Sie das Wort "gelb" in Anführungszeichen schreiben. Dann klicken Sie auf den OK-Button - und tatsächlich, die Sonne erscheint jetzt in der Farbe gelb - Sie haben den Zustand des Objektes verändert.
  7. Rufen Sie groesseAendern(int neuerDurchmesser) auf und geben Sie die Zahl 100 in die Editbox ein. Nun hat der Kreis nicht nur eine andere Farbe, sondern ist auch größer geworden.
  8. Rufen Sie für jedes Objekt die Methode sichtbarMachen() auf. Es werden dann alle Objekte angezeigt, allerdings an den nahezu gleichen Koordinaten (links oben) und ungefähr in der gleichen Größe.


Übung
  1. Versuchen Sie durch geschickten Aufruf verschiedener Methoden das Bild 2 zu erzeugen. Dabei werden Sie den Zustand der vier Objekte solange verändern, bis sie in Größe, Farbe und Position den auf Bild 2 gezeigten Objekten ähneln. Notieren Sie sich die notwendigen Veränderungen, dann werden Sie schneller mit der nächsten Aufgabe fertig.


Grundbegriffe der OOP

Klasse

Eine Klasse ist eine Vorschrift zur Konstruktion von Objekten. Eine Klasse ist immer etwas Abstraktes. Eine Klasse kann zum Beispiel nicht angezeigt werden. Dazu müssen erst Objekte der Klasse erzeugt werden.

Beispiel

Die Klasse „Kreis“ im Beispiel enthält einen Bauplan eines Kreises. Nach diesem können konkrete Kreise angelegt werden.

Konvention Klassennamen sind Substantive. Sie werden groß geschrieben z.B. Canvas, Circle, Square, Triangle.

Objekt

Ein Objekt ist eine konkrete, aus der Klasse abgeleitete oder erzeugte Instanz, die sich durch einen bestimmten Zustand' auszeichnet. Aus einer Klasse können mehrere Objekte gebildet werden, die sich voneinander unterscheiden können.

Beispiel

BlueJ benennt Objekte selbst. Es wird der Klassenname verwendet und eine Zahl angehängt: circle1, circle2, circle3

Konvention Objektnamen werden klein geschrieben z.B. circle1, circle2, circle3.

Methoden

Methoden sind Operationen, die entweder den Zustand eines Objektes ändern (verändernde Methoden) oder Informationen über den Zustand eines Objektes zurückliefern (sondierende Methoden).

Beispiel

Durch die Methode farbeAendern() verändert man die Eigenschaft Farbe eines Objektes.

Konvention Methoden sind Verben. Sie werden klein geschrieben z.B. farbeAendern().

Vertiefung

Konventionen bei der Namensgebung

Für die Wahl der Namen von Klassen, Methoden und Variablen gelten in Java Konventionen:

  • Es wird die sogenannte CamelCase-Schreibweise verwendet: Mehrere Wörter werden zusammen geschrieben. Dabei beginnt jedes Wort in der Mitte mit einem Großbuchstaben:
    vgl. sichtbarMachen(), einGrünerKreis
  • Verwenden Sie Sprechende Namen, damit Ihnen (oder anderen, die Ihren Code später lesen) das Verständnis erleichtert wird. So soll aus dem Namen möglichst hervorgehen, welche Funktion die Klasse, Methode oder Variable hat.


Übungen zu den Begrifflichkeiten der OOP

Aufgabe
  1. Erstellen Sie durch das Bewegen der Figuren und das Verändern ihrer Farben folgende Zeichnung:
  2. Untersuchen Sie die im Projekt „Figuren“ enthaltenden Klassen auf die Methoden und Eigenschaften. Sammeln Sie von jeder Klasse mindestens vier Methoden und vierEigenschaften.

Dreieck

Eigenschaften (Attribute):

xPosition : int

____

____

____

Methoden (Operationen):

farbeAendern(String neueFarbe)

___

___

___

Quadrat

Eigenschaften:

___

___

___

___

Methoden:

Kreis

Eigenschaften:

___

___

___

___

Methoden:


Übergabeparameter und Rückgabewert
Stellen Sie bei den folgenden Methoden den Datentyp des Parameters und den Ergebnistyp dar.
Methodenkopf Datentyp des Übergabeparameters Ergebnistyp
public void horizontalBewegen (int entfernung)
public void horizontalBewegen (int entfernung)
public int gibGroesse()Public void loeschen()
public void groesseAendern(int Hoehe, int Breite)


Aufgabe
Beschreiben Sie am Beispiel eines Kartenspiels die Begriffe Klasse, Objekt, Methode und Eigenschaft. Entwerfen Sie dazu die Klasse Karte.