Grundlegende Konzepte

Bedingt durch Stufenfahrten und Schülerakademie müsst ihr euch die Grundlagen großteils mit Hilfe des Skripts von U. Helmich selbst erarbeiten. Ende September werden wir dann die Inhalte der ersten fünf Folgen zusammenfassen (Kap. 1 - Folge 1-3, Kap. 2 - Folge 4-5).

Folge 1/2 - Objekte erzeugen und speichern

BlueJ ist eine für den Lerner entwickelte Programmierumgebung. Im ersten Projekt werden fertige Programme (man spricht von Klassen) verwendet. In BlueJ können dann aus den Klassen (dargestellt als gelb-bräunliche Rechtecke) Objekte erzeugt werden, indem man mit rechts auf die jeweilige Klasse klickt und den Eintrage „new … “ auswählt. Es erscheint daraufhin ein rotes Rechteck mit abgerundeten Ecken im Objektfenster am unteren Rand der Arbeitsfläche.

Klickt man mit rechts auf diese Objektdarstellung, werden alle Methoden des Objekts angezeigt. Die Methoden geben an, was das Objekt kann bzw. geben dem Nutzer die Möglichkeit, die Eigenschaften des Objekts zu ändern. Dazu klickt man die gewünschte Methode an und gibt, wenn notwendig, Werte an.

Durch das Erzeugen von Objekten und der Veränderung ihrer Eigenschaften lässt sich im Rahmen der ersten Aufgabe ein Bild erzeugen - das aber nach jeder Veränderung in den Programmdateien neu zu erstellen ist.

BlueJ-Ansicht mit Zeichnung

Objekte existieren also nur „zur Laufzeit“ im Arbeitsspeicher.

Will man das erzeugte Bild speichern, so muss man eine eigene Klasse schreiben, die die Befehle enthält, die vorher von Hand ausgewählt wurden - also „new … “ zur Objekterzeugung und dann die zu verwendenden Methoden.

Beispiel

Aus der Klasse „Kreis“ soll ein Objekt erzeugt werden, mit dem die „Sonne“ des Bildes dargestellt wird.

In diesem Programm reicht es, alle Befehle in den „Konstruktor“ zu schreiben, also die Methode, die am Anfang des Programms steht und grundsätzlich als erstes ausgeführt wird.

/**
 * Die Klasse Zeichnung erzeugt ein Bild. 
 * @author (BA) 
 * @version (02.09.2010)
 */
public class Zeichnung
{
	// Instanzvariablen deklarieren
	private Kreis sonne;
 
	/**
	 * Konstruktor für Objekte der Klasse Zeichnung
	 */
	public Zeichnung()
	{
		sonne = new Kreis();            // Instanzvariable initialisieren
 
		sonne.sichtbarMachen();         // Methoden verwenden
		sonne.groesseAendern(100);
		sonne.farbeAendern("gelb");     // Parameter vom Typ String (Zeichenkette)
		sonne.horizontalBewegen(150);   // Parameter vom Typ int (ganze Zahl)
		sonne.vertikalBewegen(-30);
	}
}

Zur Schreibweise: Klassennamen (hier: Kreis) werden grundsätzlich groß geschrieben, Variablennamen (hier: sonne) und Methodennamen (hier z.B. sichtbarMachen) beginnen grundsätzlich mit einem Kleinbuchstaben.

Alle zum Zeichnen der Sonne verwendeten Methoden der Klasse Kreis verändern den Zustand des erzeugten Objekts sonne - entweder mit fest eingestellten Werten (z.B. sonne.sichtbarMachen(); ) oder durch Eingabe von Werten, die in Parametern gespeichert werden (z.B. sonne.vertikalBewegen(-30); oder sonne.farbeAendern(„gelb“); ).

Folge 3 - Waage

Jetzt wird mit BlueJ ein Projekt neu angelegt (leeres Projekt) und die benötigte Klasse selbst geschrieben. Dazu fügt man mit „neue Klasse“ eine Klasse in BlueJ dazu und löscht zunächst alles, was aus der Standardvorgabe nicht benötigt wird.

Die zu erzeugende Klasse enthält dann alle Elemente, die einer Java-Klasse vorkommen:

public class Waage
{
    private double gewicht; //Instanzvariable gewicht vom Typ Kommazahl wird deklariert
 
    public Waage()          //Der Konstruktor muss vorhanden sein, enthält hier aber keine Befehle
    {
    }
 
    public void wiegen(double gew) //eine verändernde Methode, void heißt: kein Rückgabewert
    {
        gewicht = gew;             //die Instanzvariable gewicht erhält hier den Wert des Parameters gew 
    }                              //die Typen von gewicht und gew müssen übereinstimmen (hier: double)
}    

Neben verändernden Methoden gibt es noch sondierende Methoden - diese verändern den Zustand des Objekts nicht, sondern melden den aktuellen Zustand des Objekts (man sagt: liefern den Wert der Variablen zurück).

Um den Wert des gespeicherten Gewichts abzufragen, kann man die folgende Methode verwenden:

    public double aktuellesGewicht()   //Werte vom Typ double werden zurückgegeben
    {
        return gewicht;                //return ist das Schlüsselwort für die Rückgabe
    }

In BlueJ öffnet sich bei der Verwendung einer sondierenden Methode ein Fenster des Objektinspektors, in dem der abgefragte Wert aufgeführt wird. Man kann natürlich nicht nur feste Werte, sondern auch berechnete Werte zurückgeben. Diese Werte können dann auch von anderen Methoden verwendet werden.

Will man die Werte nur ansehen, aber nicht weiterverwenden, kann man auch eine Methode schreiben, die keinen Rückgabewert hat (also: void) aber auch nichts verändert, sondern nur die Werte auf die Konsole ausgibt.

    public void ausgeben()
    {
        System.out.println("Ihr Gewicht ist: "+gewicht);
    }
schule/if/ef/konzepteuh.txt · Zuletzt geändert: 2018/05/31 19:30 von ahrens
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0