Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte Musterlösung Klassen und Objekte Klassendefinition Objektattribute (Instanzvariablen) Methoden (Parameterübergabe, Rückgabewert)
Klassen Grundbaustein jedes Java-Programms Objektorientierung Kapselung Kommunikation über Botschaften (Methoden) Definierte Schnittstellen Verbergen von unwichtigen Details Ziel: Wiederverwendbarkeit von Programmen Vererbung (später) Polymorphismus (später)
Klassen und Objekte Klassen definieren allgemeine Eigenschaften (z.B. Bauplan für ein Haus) Von einer Klasse können Objekte (Instanzen) erzeugt werden (konkrete Ausprägung einer Klasse, konkretes Haus)
Klassendefinition in Java class Klassenname { //Attribute Typ1 Variablename1; Typ2 Variablename2; . . . //Methoden Rückgabewerttyp1 Methode1 (Parameterliste) { // Methodendefinition der 1. Methode } Rückgabewerttyp2 Methode2 (Parameterliste) { // Methodendefinition der 2. Methode
Beispiel zur Klassendefinition class Punkt { //Attribute double x; double y; //Konstruktor Punkt(double xStartWert, double yStartWert) { x = xStartWert; y = yStartWert; } // Methoden void Verschiebe (double dx, double dy) { x = x + dx; y = y + dy; double x-Koordinate() { return x;
Erzeugen von Objekten Syntax: . . . Klassenname Objektvariable; // Deklaration Objektvariable = new Klassenname (); // Instantiierung
Zugriff auf Instanzvariablen Syntax: . . . Objektvariable.Instanzvariable = Wert ;
Aufruf von Methoden Syntax: // Methode ohne Rückgabewert Objektvariable.Methode1(Parameterliste); . . . // Methode mit Rückgabewert Variable = Objektvariable.Methode2(Parameterliste);
Erzeugung eines Objekts public static void main (String args[]) { //Deklaration einer Variablen vom Typ Punkt Punkt p; //Erzeugen eines Objekts vom Typ Punkt p = new Punkt(3.6, 7.9); //Zugriff auf Attribute (die nicht private sind) double d = p.x; p.y = 6.33; ...... //Methodenaufruf p.Verschiebe(6,4); }
Beispiel zur Klassendefinition class Punkt { //Attribute private double x; private double y; //Konstruktor Punkt(double xStartWert, double yStartWert) { x = xStartWert; y = yStartWert; } // Methoden void Verschiebe (double dx, double dy) { x = x + dx; y = y + dy; double x-Koordinate() { return x;
Übungsaufgabe 4 Entwerfen Sie eine Klasse, die Rechtecke repräsentiert. Als Methoden sollte mindestens die Flächenberechnung zur Verfügung gestellt werden.