Algorithmen und Datenstrukturen



Ähnliche Dokumente
Java: Vererbung. Teil 3: super()

Javakurs 2013 Objektorientierung

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Objektorientierte Programmierung

Einführung in die Java- Programmierung

Typumwandlungen bei Referenztypen

3 Objektorientierte Konzepte in Java

U08 Entwurfsmuster (II)

Prinzipien Objektorientierter Programmierung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Java Kurs für Anfänger Einheit 5 Methoden

Algorithmen und Datenstrukturen

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Applet Firewall und Freigabe der Objekte

Einführung in die Programmierung

Objektorientierte Programmierung

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Große Übung Praktische Informatik 1

Einführung in die Java- Programmierung

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

5. Tutorium zu Programmieren

Programmieren in Java

Zählen von Objekten einer bestimmten Klasse

Innere Klassen in Java

4. AuD Tafelübung T-C3

C# im Vergleich zu Java

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Der lokale und verteilte Fall

Vererbung & Schnittstellen in C#

Delegatesund Ereignisse

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Java Virtual Machine (JVM) Bytecode

Einführung in die Programmierung für Wirtschaftsinformatik

Studentische Lösung zum Übungsblatt Nr. 7

Kapitel 6. Vererbung

Software Engineering Klassendiagramme Einführung

Gebundene Typparameter

Grundlagen von Python

5. Abstrakte Klassen

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Kapitel 6. Vererbung

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

2. Semester, 2. Prüfung, Lösung

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

Vorkurs C++ Programmierung

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

BEISPIELKLAUSUR Softwareentwicklung:

Javakurs zu Informatik I. Henning Heitkötter

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Überblick. Lineares Suchen

Objektorientierte Programmierung

Remote Method Invocation

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Programmierkurs Java

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Analyse und Modellierung von Informationssystemen

Musterlösungen zur Klausur Informatik 3

Objektorientierte Programmierung. Kapitel 12: Interfaces

Analyse und Modellierung von Informationssystemen

Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger

Java Einführung Collections

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren Tutorium

SEP 114. Design by Contract

Scala kann auch faul sein

Suchen und Sortieren

Kapitel 6. Vererbung

Computeranwendung und Programmierung (CuP)

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Einführung in die Programmierung

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

Probeklausur: Programmierung WS04/05

Themen. Web Service - Clients. Kommunikation zw. Web Services

Software Engineering Klassendiagramme Assoziationen

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln

5.5.8 Öffentliche und private Eigenschaften

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Besonderheiten von C#

3 Objektorientierte Konzepte in Java

Programmierkurs Java

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Assoziation und Aggregation

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Testen mit JUnit. Motivation

Software Engineering Interaktionsdiagramme

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Objektorientierung: Klassen und Objekte

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Java Einführung Methoden in Klassen

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Transkript:

Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13

Organisatorisches Nächster Übungstermin Nächsten Dienstag ist bergfrei! Tafelübung zu AuD 2/13

Wiederholung Referenzen Wiederholung (4.1) Was sind Referenzen? Zeiger auf den Speicherbereich eines Objekts Mehrere Referenzen können auf das selbe Objekt zeigen == vergleicht nur die Referenzen, equals() vergleicht Inhalte Tafelübung zu AuD 3/13

Der Garbage Collector Garbage Collection (4.1) Objekte löschen? Löschen aus dem Speicher in Java nicht möglich Stattdessen: Entfernen a der Referenzen auf ein Objekt Der Garbage Collector entfernt periodisch nicht länger erreichbare Objekte Wichtig: Es ist nicht klar, wann der Garbage Collector läuft! a oder ungültig werden Tafelübung zu AuD 4/13

Wiederholung Overloading Wiederholung (4.2) Was ist Overloading? Mehrere Methoden mit gleichem Namen, aber unterschiedlichen Parametertypen Unterscheidung anhand der statischen Typen der übergebenen Parameter beim Aufruf Tafelübung zu AuD 5/13

Wiederholung Overloading Beispiele (4.2) Beispiele Sei public static double[] fold(double[][] matrix) gegeben. Sind die folgenden Methoden gültige Überladungen? public static double[] fold(double[][] m) private static double[] fold(double[][] m) static double[] fold(double[] matrix) protected int[] fold() protected static int[] fold(double[][] matrix) public static double[] fold(double[][] matrix, int direction) Tafelübung zu AuD 6/13

Konstruktoren Konstruktoren und Superkonstruktor (4.3) Beispiel zu super() und this() 1 public class Constructor { 2 private int a, b; 3 public Constructor ( int a, int b) { 4 this.a = a; this.b = b; 5 } 6 } 7 class SubConstructor extends Constructor { 8 int c; 9 public SubConstructor ( int a, int b, int c) { 10 super (a, b); // muss erster Aufruf sein! 11 this. c = c; 12 } 13 protected SubConstructor () { 14 this (42, 23, 5); 15 } 16 } Tafelübung zu AuD 7/13

static-keyword statische Variablen (und Methoden) (4.1) statische Variablen/Methoden gekennzeichnet durch das Schlüsselwort static existieren nur einmal pro Klasse (d.h. alle Objekte der Klasse teilen sich eine Variable/Methode) Tafelübung zu AuD 8/13

static-keyword statische Variablen (und Methoden) Beispiel (4.1) Singleton-Entwurfsmuster Das Singleton (auch Einzelstück genannt) ist ein in der Softwareentwicklung eingesetztes Entwurfsmuster [... ]. Es verhindert, dass von einer Klasse mehr als ein Objekt erzeugt werden kann. Dieses Einzelstück ist darüber hinaus üblicherweise global verfügbar. http://de.wikipedia.org/w/index.php?title=singleton_(entwurfsmuster)&oldid=73699391 Tafelübung zu AuD 9/13

static-keyword statische Variablen (und Methoden) Beispiel (2) (4.1) Beispielimplementierung 1 public class SingleLogger { 2 private static SingleLogger instance ; 3 4 private SingleLogger () {} 5 6 public static SingleLogger getinstance () { 7 if ( instance == null ) { 8 instance = new SingleLogger (); 9 } 10 return instance ; 11 } 12 //... weitere Methoden / Variablen... 13 } Tafelübung zu AuD 10/13

static-keyword statische Variablen (und Methoden) Beispiel (3) (4.1) Beispielimplementierung 1 public class LoggerUsage { 2 public static void main ( String [] args ) { 3 // write a log message 4 SingleLogger. getinstance ().log (" starting... "); 5 SingleLogger. getinstance ().log ("done, shutting down "); 6 } 7 } Tafelübung zu AuD 11/13

Nachbesprechung Nachbesprechung von Blatt 2 Begriffe, Codierung, Entscheidungsgehalt Hangman, The Matrix 3D, The Matrix Reloaded Tafelübung zu AuD 12/13

Ende Ende Noch Fragen? Tafelübung zu AuD 13/13