Einführung in die Informatik 1

Ähnliche Dokumente
Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Einführung in die Informatik 2

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Einführung in die Informatik 1

Implementieren von Klassen

7. Übung Informatik II - Objektorientierte Programmierung

Einführung in die Informatik 2

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Geschachtelte Klassen

Einführung in die Informatik 2

Einstieg in die Informatik mit Java

Einführung in die Informatik 2

Einstieg in die Informatik mit Java

Kapitel 9: Klassen und höhere Datentypen. Selektoren

Einstieg in die Informatik mit Java

3 Objektorientierte Konzepte in Java

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Einstieg in die Informatik mit Java

Algorithmen und Datenstrukturen

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Java Einführung Methoden in Klassen

Tag 8 Repetitorium Informatik (Java)

Informatik II. Woche 13, Giuseppe Accaputo

Objektorientierte Programmierung und Klassen

Einstieg in die Informatik mit Java

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einführung in die Informatik 2

Programmieren in Java

Programmieren in Java -Eingangstest-

5.5.8 Öffentliche und private Eigenschaften

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung, Polymorphie

7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

C++ - Objektorientierte Programmierung Vererbung

Klassen als Datenstrukturen

1 Klassen und Objekte

Aufbau von Klassen. class punkt {...

3 Objektorientierte Konzepte in Java

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Geschachtelte Klassen

Einstieg in die Informatik mit Java

Tutorial zu Einführung in die Informatik für LogWi- Ings und WiMas Wintersemester 2015/16. 1 Zauberer und Zwerge, Aufgabenteil 1

Algorithmen und Datenstrukturen

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

Objektorientierte Programmierung Studiengang Medieninformatik

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017

5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Vorlesung Datenstrukturen

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

Philipp Güttler Objektorientierung und komplexe Datentypen

Repetitorium Informatik (Java)

Einführung in die Programmierung für NF MI. Übung 07

Tafelübung 07 Algorithmen und Datenstrukturen

Tag 7 Repetitorium Informatik (Java)

Programmieren in Java

Vererbung & Schnittstellen in C#

Vererbung und Polymorphie

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Klassenvariablen, Klassenmethoden

11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 5. Objekte und Klassen 1

Einführung in die Informatik 2

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

Objektorientierte Programmierung

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

JAVA - Methoden - Rekursion

Einstieg in die Informatik mit Java

Objektorientierte Programmierung

Klassen mit Instanzmethoden

Semestralklausur Einführung in die Programmierung, WS 2005/06, Seite 1/6 Name, Vorname, Matrikelnummer: Gruppe A

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 5. Objekte und Klassen 1

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

Effiziente Java Programmierung

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Klassen in Java. Klassen

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Einstieg in die Informatik mit Java

Kapitel 10 Delegationsvariablen

Allgemeines - Prinzipien

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

JAVA - Methoden

Prinzipien der objektorientierten Programmierung (OOP)

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Einführung in die Programmierung mit C++

Kurzeinführung in C/C++ Elementare Datentypen in C++

Einführung in die Informatik 2

Java Einführung Klassendefinitionen

Algorithmen und Datenstrukturen 06

1 Abstrakte Klassen, finale Klassen und Interfaces

Informatik II Prüfungsvorbereitungskurs

Transkript:

Einführung in die Informatik 1 Klassen und Objekte in Java Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v. Wintersemester 2008/2009 Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 1 / 10

Klassen Erinnerung: (Objekt-)Klasse Zusammenfassung von Objekten mit gleichen Zustandsvariablen und Methoden Objekte einer Klasse durch Werte der Zustandsvariablen beschrieben modelliert einen bestimmten Typ von Objekten Beschreibung von Typen als Klassen bedeutet: dynamisch: Menge aller (erzeugten) Objekte der Klasse statisch: Festlegung des Aufbaus (Struktur) aller Objekte der Klasse Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 2 / 10

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ängig von Objekten (müssen nicht einmal existieren) Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 3 / 10

Klassen: Deklaration Klassen: ClassDeclaration : Modifier opt class Identifier { DeclarationStatements DeclarationStatements : DeclarationStatement opt DeclarationStatements DeclarationStatement DeclarationStatement : VariableDeclaration ; MethodDeclaration ConstructorDeclaration ClassDeclaration class Messwert2D { int x; // x-koordinate int y; // y-koordinate double wert; // Messwert Klasse Messwert2D modelliert reinen Verbundtyp nur Felder (Variablen), keine Methoden Container-Klasse für Datenbeziehungen Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 4 / 10

Klassen: Deklaration class Time { int sec=0; // Sekunden, 0 sec 60 int min=0; // Minuten, 0 min 60 int hrs=0; // Stunden, 0 hrs void tick() { sec++; if (sec>=60) { sec -=60; min++; if (min>=60) { min -=60; hrs++; Klasse Time zur elektronischen Zeitnahme Methoden tick() implementiert die Operation des Tickens des Sekundenzählers Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 5 / 10

Klassen: Deklaration class M2DT { // Instanzenvariablen Messwert2D m; Time t; // Konstruktor M2DT() { m=new Messwert2D(); t=new Time(); // Messdaten in 2D // Zeitpunkt des Messens Klasse M2DT verbindet ein Objekt (Messwert) vom Typ Messwert2D mit einem Objekt vom Typ Time (Zeitpunkt der Messung) Variablen m und t sind Referenzvariablen Konstruktor M2DT initialisiert Objekt vom Typ M2DT Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 6 / 10

Modifikatoren Modifikatoren (für Klassen, Variablen, Methoden): Modifier : ein Terminal aus public private protected Bedeutung: regulieren Zugriffsrechte unter den Objekten public erlaubt globalen Zugriff auf Klasse, Variable oder Methode private erlaubt Zugriff innerhalb der Klasse protected erlaubt Zugriff von abgeleiteten Klassen aus ohne Angabe (Modifier ist optional) gilt Zugriff innerhalb eines Pakets (package) Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 7 / 10

Modifikatoren public class Time { // Sekunden, 0 sec 60 private sec=0; // Minuten, 0 min 60 private int min=0; // Stunden, 0 hrs 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 Klasse Time zugreifen auf die Instanzenvariablen sec, min und hrs darf nur das besitzende Objekte zugreifen Methoden tick darf von allen Objekten aufgerufen werden Wie können die Instanzenvariablen gelesen und verändert werden? Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 8 / 10

Selektoren Selektoren: spezielle Methoden für Zugriff auf Variablen stellen Schnittstelle für andere Objekte zur Verfügung regulieren wie Variablenwerte von außen gesehen werden Zugriff über Selektoren meist langsamer als direkter Variablenzugriff public class Time { private sec=0; // Sekunden, 0 sec 60 private int min=0; // Minuten, 0 min 60 private int hrs=0; // Stunden, 0 hrs 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() {... Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 9 / 10

Selektoren Selektoren: spezielle Methoden für Zugriff auf Variablen stellen Schnittstelle für andere Objekte zur Verfügung regulieren wie Variablenwerte von außen gesehen werden Zugriff über Selektoren meist langsamer als direkter Variablenzugriff public class Time { private sec=0; // Sekunden, 0 sec 60 private int min=0; // Minuten, 0 min 60 private int hrs=0; // Stunden, 0 hrs 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() {... Sven Kosub (Algorithmik/TKS) EI1: Objekte in Java 10 / 10