• Keine Ergebnisse gefunden

Einf¨uhrung in die Informatik 1 – Klassen und Objekte in Java – Sven Kosub

N/A
N/A
Protected

Academic year: 2021

Aktie "Einf¨uhrung in die Informatik 1 – Klassen und Objekte in Java – Sven Kosub"

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Einf¨ uhrung in die Informatik 1

– Klassen und Objekte in Java –

Sven Kosub

AG Algorithmik/Theorie komplexer Systeme Universit¨at Konstanz

E 202 | Sven.Kosub@uni-konstanz.de | Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.V.

Wintersemester 2008/2009

(2)

Klassen

Erinnerung:

(Objekt-)Klasse

Zusammenfassung von Objekten mit gleichen Zustandsvariablen und Methoden

Objekte einer Klasse durch Werte der Zustandsvariablen beschrieben modelliert einen bestimmten Typvon Objekten

Beschreibung von Typen als Klassen bedeutet:

dynamisch:Menge aller (erzeugten) Objekte der Klasse

statisch: Festlegung des Aufbaus (Struktur) aller Objekte der Klasse

(3)

Klassen: Bestandteile

Instanzen

Objekte der Klasse

Instanzenvariablen

speichern individuellen Datensatz bzw. Zustand eines Objekt

Instanzenmethoden

werden auf einem Objekt aufgerufen, laufen auf diesem, haben Zugriff auf Instanzenvariablen des Objektes

Klassenvariablen

nur ein Satz pro Klasse, speichern globalen Zustand der Klasse

Klassenmethoden

werden wie normale Funktionen aufgerufen, unabh¨angig von Objekten (m¨ussen nicht einmal existieren)

(4)

Klassen: Deklaration

Klassen:

ClassDeclaration:

Modifieropt class Identifier { DeclarationStatements } DeclarationStatements:

DeclarationStatementopt

DeclarationStatements DeclarationStatement DeclarationStatement :

VariableDeclaration; MethodDeclaration ConstructorDeclaration ClassDeclaration

class Messwert2D {

int x; // x-Koordinate int y; // y-Koordinate double wert; // Messwert }

KlasseMesswert2Dmodelliert reinen Verbundtyp

nur Felder (Variablen), keine Methoden Container-Klasse f¨ur Datenbeziehungen

(5)

Klassen: Deklaration

class Time {

int sec=0; // Sekunden, 0sec60 int min=0; // Minuten, 0min60 int hrs=0; // Stunden, 0hrs void tick() {

sec++;

if (sec>=60) { sec -=60;

min++;

if (min>=60) { min -=60;

hrs++;

} } } }

KlasseTime zur elektronischen Zeitnahme

Methodentick() implementiert die Operation des Tickens des Sekundenz¨ahlers

(6)

Klassen: Deklaration

class M2DT {

// Instanzenvariablen

Messwert2D m; // Messdaten in 2D

Time t; // Zeitpunkt des Messens

// Konstruktor M2DT() {

m=new Messwert2D();

t=new Time();

} }

Klasse M2DTverbindet ein Objekt (Messwert) vom TypMesswert2D mit einem Objekt vom Typ Time(Zeitpunkt der Messung)

Variablen mund tsind Referenzvariablen

Konstruktor M2DT initialisiert Objekt vom TypM2DT

(7)

Modifikatoren

Modifikatoren (f¨ur Klassen, Variablen, Methoden):

Modifier: ein Terminal aus

public private protected

Bedeutung:

regulieren Zugriffsrechte unter den Objekten

publicerlaubt globalen Zugriff auf Klasse, Variable oder Methode privateerlaubt Zugriff innerhalb der Klasse

protectederlaubt Zugriff von abgeleiteten Klassen aus

ohne Angabe (Modifier ist optional) gilt Zugriff innerhalb eines Pakets (package)

(8)

Modifikatoren

public class Time {

// Sekunden, 0sec60 private sec=0;

// Minuten, 0min60 private int min=0;

// Stunden, 0hrs private int hrs=0;

public void tick() { sec++;

if (sec>=60) { sec -=60;

min++;

if (min>=60) { min -=60;

hrs++;

} } } }

Zugriffsrechte:

jedes Objekt darf auf KlasseTime zugreifen auf die Instanzenvariablen sec,minund hrsdarf nur das besitzende Objekte zugreifen Methodentick darf von allen Objekten aufgerufen werden

Wie k¨onnen die Instanzenvaria- blen gelesen und ver¨andert wer- den?

(9)

Selektoren

Selektoren:

spezielle Methoden f¨ur Zugriff auf Variablen

stellen Schnittstelle f¨ur andere Objekte zur Verf¨ugung regulieren wie Variablenwerte von außen gesehen werden

Zugriff ¨uber Selektoren meist langsamer als direkter Variablenzugriff

public class Time {

private sec=0; // Sekunden, 0sec60

private int min=0; // Minuten, 0min60

private int hrs=0; // Stunden, 0hrs

public int getSeconds() { return sec; } public int getMinutes() { return min; } public int getHours() { return hrs; }

public int getSecondsInTotal() { return sec+60*min+3600*hrs; }

· · ·

public void tick() { . . . } }

(10)

Selektoren

Selektoren:

spezielle Methoden f¨ur Zugriff auf Variablen

stellen Schnittstelle f¨ur andere Objekte zur Verf¨ugung regulieren wie Variablenwerte von außen gesehen werden

Zugriff ¨uber Selektoren meist langsamer als direkter Variablenzugriff

public class Time {

private sec=0; // Sekunden, 0sec60

private int min=0; // Minuten, 0min60

private int hrs=0; // Stunden, 0hrs

· · ·

public void setSeconds(int s) { sec=s; } public void setMinutes(int m) { min=m; } public void setHours(int h) { hrs=h; } public void setSecondsInTotal(int s) {

hrs=s/3600; min=((s%3600)/60); sec=s%60; } public void tick() { . . . }

}

Referenzen

ÄHNLICHE DOKUMENTE

Menge der Bilder mit B¨ aumen kann ohne weitere Information praktisch nicht gespeichert oder realisiert werden.. Quantitative

Klaus Diepolt, Lehrstuhl f¨ ur Datenverarbeitung, Fakult¨ at f¨ ur Elektrotechnik und Informationstechnik, TU M¨ unchen..

Es muss genau spezifiziert sein, welche Eingabegr¨ oßen erforderlich sind und welchen Anforderungen diese Gr¨ oßen gen¨ ugen m¨ ussen, damit das Verfahren

jeder Verbund hat h¨ ochstens einen Verbund, der auf ihn referenziert letzter Verbund der Liste referenziert auf sich selbst oder auf speziellen Bezeichner f¨ ur den leeren

objektorientierte Software-Systeme = Objekte + Objektbeziehungen graphische Repr¨ asentierung: Linien mit Beschriftung (Annotation) Objekte der Klasse. ” Person“ und Objekte

i++ legt fest, dass i nach jedem Durchlauf inkrementiert wird Anweisung hinter for (...) wird in jedem Durchlauf ausgef¨ uhrt...

• dient nur als Schablone für abgeleitete Klassen I abstrakte Klassen können nicht instanziert werden. • Compiler

■ Eine Klasse enthält einen speziellen Repräsentanten, ein spezielles Objekt, ein Schablonenobjekt (Prototyp) für ihre Objekte. ■ Ein Objekt wird aus einer Klasse