Vorlesung Programmieren

Ähnliche Dokumente
Wiederholung zur Vorlesung Programmieren

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Implementieren von Klassen

Vererbung, Polymorphie

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

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

3 Objektorientierte Konzepte in Java

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

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

12 Abstrakte Klassen, finale Klassen und Interfaces

Programmieren in Java

Javakurs für Anfänger

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

Probeklausur: Programmierung WS04/05

Tafelübung 07 Algorithmen und Datenstrukturen

Objektorientierte Programmierung. Kapitel 14: Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces

3 Objektorientierte Konzepte in Java

Objektorientierte Programmierung Studiengang Medieninformatik

Vererbung und Polymorphie

Algorithmen und Datenstrukturen

Objektorientierte Programmierung. Kapitel 12: Interfaces

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

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

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Java für Bauingenieure

Kapitel 4: Klassen und Unterklassen

Objektorientierte Programmierung Studiengang Medieninformatik

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

Algorithmen und Datenstrukturen 07

Programmieren in Java

Info B VL 11: Innere Klassen/Collections

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

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003

6. Globalübung (zu Übungsblatt 8)

Probeklausur: Programmierung WS04/05

Objektorientierte Programmierung Studiengang Medieninformatik

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

Java Schulung (Java 2 Java Development Kit 5 / 6)

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Vererbung & Schnittstellen in C#

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1

Javakurs für Anfänger

Programmieren 2 Java Überblick

Objekt-orientierte Programmierung

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.

Programmieren in Java

Einführung in die Programmiersprache Java II

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Javakurs für Anfänger

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

Musterlösung Stand: 5. Februar 2009

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Einstieg in die Informatik mit Java

Fragen zur OOP in Java

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

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

14 Abstrakte Klassen, finale Klassen, Interfaces

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

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

Programmierkurs Java

Programmieren in Java

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

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Selbststudium OOP1 & DAT Programmieren 2 F1203 Felix Rohrer

Arten von Klassen-Beziehungen

Theorie zu Übung 8 Implementierung in Java

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

4. Vererbung Die Klasse Object. Die Klasse Object

Objektorientierung (OO)

Einführung in das Programmieren Probeklausur Lösungen

Javakurs für Anfänger

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Javakurs für Anfänger

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Java I Vorlesung Vererbung und Sichtbarkeit

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Interfaces und Vererbung

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Die Klasse java.lang.object. Thorsten Treffer

Exceptions und Vererbung

Programmieren 1 09 Vererbung und Polymorphie

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

Übungsblatt 7. Was ist die Ausgabe de facto? Entspricht die Ausgabe Ihren Erwartungen?

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Javakurs für Anfänger

II.4.5 Generische Datentypen - 1 -

Algorithmen und Datenstrukturen II

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Institut für Informatik. Endterm Klausur zu Informatik I 20. Februar 2010

Überschreiben von Methoden

Einstieg in die Informatik mit Java

Gliederung der Folien

Transkript:

Vorlesung 21.12.2006 Wintersemester 2006/2007 Computerlinguistik, Campus DU Referenten: Werner Gaulke, Jan Engler

Überblick Seite 2 Wiederholung, Vorbereitung & Verschiedenes

Fragenkatalog (1) Wie deklariert man eine Variable x vom Typ int? Beispiel. Anwendbar auf alle primitive Datentypen. int x = 10; Was ist der Unterschied zwischen einfachen und komplexen Datentypen? Beispiel. Primitive DT haben keine Methoden oder Attribute. Komplexe DT werden mit new erzeugt Car a = new Car(); Was ist eine Klasse, was ist ein Objekt, wie verhalten sie sich zueinander? Klassen sind Schablonen Objekte sind Instanzen einer Klasse; Erzeugt durch new Was ist eine Referenz, was ist eine Referenzvariable? Beispiel. Student x = new Student(); Student y=x; Seite 3

Fragenkatalog (2) Was ist eine Zuweisung, und wie sieht sie aus (Syntax)? VAR = Ausdruck; Was bedeuten Präzedenz und Assoziativität bei Operatoren? Beispiel. Wertigkeit der Operatoren bestimmt Auswertungsreihenfolge 3 + 4 * 5 / 6 + i ++ Was ist der Unterschied zwischen statischen Methoden und anderen Methoden einer Klasse? Statische Methoden können ohne Objekt der Klasse verwendet werden Können ohne Objekt programmweit genutzt werden Wie sind Methoden aufgebaut? Beispiel. modifier Rückgabewert name(parameter) public String tostring() Wie gibt man aus einer Methode einen Wert zurück, und wie verwendet man diesen Wert dann weiter? Rückgabe in der Methode mit return Wert Die aufrufende Stelle erhält den Wert der Rückgabe und dessen Typ Kopf muss Typ des Rückgabewerts definieren Seite 4

Fragenkatalog (3) Wie ruft man eine Methode auf? Gibt es beim Aufruf Unterschiede zwischen statischen und anderen Methoden? Aufruf: OBJEKTVAR.METHODE Stat. M. werden mit Klassennamen aufgerufen KLASSE.METHODE Wozu braucht man eine main-methode? Braucht man in jeder Klasse eine main-methode? Einstiegspunkt für Programme, static, hier wird kein Objekt gebraucht Nein Was ist der Unterschied zwischen Klassenvariablen und Instanzvariablen? Klassenvariablen gelten für alle Instanzen, Instanzvariablen werden für jede Instanz neu erzeugt/belegt z.b. Counter für Studenten (KV), Baujahr von Auto (IV) Was bedeutet Überladung? Beispiel. void mymethod(int x); void mymethod(string x); Was muss man beim Überladen beachten? Seite 5

Methoden überschreiben Seite 6 public String meinemethode(int x){ return "Zahl" + x; public String meinemethode(double x){ return "Zahl" + x; public String meinemethode(int x, int y){ return "Summe" + x + y; public String meinemethode(double x){ return Andere Zahl" + x;

Fragenkatalog (4) Was sind lokale, was sind globale Variablen? Global: Klassenvariablen, Lokal: Methodenvariablen Können gleich benannt werden Was bedeutet this? Beispiel. S.o., Auflösung von Mehrdeutigkeiten ( Disambiguierung ) von lokalen/globalen Variablen Was ist ein Konstruktor? Wird automatisch mit new aufgerufen Initialisert ein Objekt einer Klasse Welche Schleifentypen kennst du? for, while, do while Können Schleifen unterschiedlichen»typs«äquivalent sein/gemacht werden? Beispiel. Seite 7

Äquivalenz von Schleifen Seite 8 for (int i = 0; i < 10; i++) { System.out.print(i); int i = 0; do{ System.out.print(i); i++; while(i < 10); i=0; while (i < 10) { System.out.print(i); i++;

Fragenkatalog (5) Was ist der Unterschied zwischen einer Schleife und einer Verzweigung? Schleife wiederholt Anweisungen Verzweigung teilt Programmfluss auf Was ist der Unterschied zwischen einem Array und einem Vector? Array: Größe beim erzeugen festgelegt, Bindung an Typ Vector: Größe dynamisch, Kann alle Typen beinhalten Was bedeutet es, eine Methode zu überschreiben? Was muss man beachten? Beispiel. Signatur der Methoden kann identisch sein Wird oft bei Vererbung angewandt Seite 9

Äquivalenz von Schleifen Seite 10 class Oberklasse { protected String writeinfo(){ System.out.println( Info ); class Unterklasse extends Oberklasse { protected String writeinfo(){ System.out.println( neue Info );

Fragenkatalog (6) Was ist Kapselung? Verbergen von Implementierungsdetails Welche Zugriffsrechte gibt es, und was bewirken Sie? public immer sichtbar protected nur für vererbte Klassen sichtbar private nur in der Klasse sichtbar Seite 11 (nichts) - innerhalb des Packages sichtbar (package-private) Welche Klasse ist Oberklasse von allen Klassen? Die Klasse Object Was ist Polymorphie? Beispiel.»Vielgestaltigkeit«, Var. kann unterschiedlichen Datentypen haben/beinhalten. Die Datentypen müssen kompatibel sein.

Polymorphie class Artikel{ protected int preis; Artikel(int preis){ this.preis = preis; public int getpreis(){ return this.preis; class Buch extends Artikel{ String autor; Buch(int preis, String autor){ super(preis); this.autor = autor; class DVD extends Artikel{ String titel; DVD(int preis, String titel){ super(preis); this.titel = titel; public class Poly { public static void main(string[] args) { Artikel[] warenkorb = new Artikel[10]; warenkorb[0] = new Buch(14, "Dan Brown"); warenkorb[1] = new DVD(19, "Boondock Saints"); //Warenkorbpreis berechnen int korbvalue = 0; for(int i =0; i < warenkorb.length; i++){ if(warenkorb[i]!= null) korbvalue += warenkorb[i].getpreis(); System.out.println("Warenwert der Artikel: "+ korbvalue + " "); Seite 12

Fragenkatalog (7) Was ist der Unterschied zwischen einem Interface und einer Klasse? Interface kann nicht instanziiert werden Interface hat ausschließlich Konstanten und nicht-implementierte Methoden Kann eine Klasse mehrere direkte Oberklassen haben? Nein. Problematisch bei gleichen Methoden der Oberklassen? Welche gilt? Können Interfaces von Klassen erben? Neu. Nein. Warum? Interfaces können nur Konstanten/leere Methoden haben, Klassen dagegen viel mehr. Können Interfaces von Interfaces erben? Neu. Ja. Beispiel. Kann ein Interface mehrere direkte Oberinterfaces haben? Neu. Ja. Beispiel. Seite 13

Interfaces Seite 14 public interface HeiligAbend { public String getdatum(); public void beschehrung(); interface Wochentag{ public String getdatum(); interface Sonntag implements HeiligAbend, Wochentag{

Fragenkatalog (8) Was ist der Unterschied zwischen extends und implements? extends erbt die Dinge der Oberklasse Implements implementiert die leeren Methoden eines Interfaces Was bedeutet final und wie wird es verwendet? Beispiel. Verwendung für Variablen, Methoden, Klassen Nachträgliche Änderung nicht mehr möglich; M. -> keine Überschreibung final int x = 10; Was ist eine abstrakte Methode und wozu braucht man sie? Abstrakte Methode gibt Signatur vor, wird später implementiert. Nützlich, wenn Unterklasse die Methode spezifisch implementieren sollen, der Rest aber gleich ist. Tier Beispiel: machlaut() Was ist der Unterschied zwischen einer abstrakten Klasse und einem Interface? Abstrakte Klassen können auch normale Methoden und Variablen enthalten. Seite 15

Fragenkatalog (9) Wofür braucht man Methoden? Nenne drei verschiedene Gründe. Zerlegung in Teilaufgaben Schnittstellenbildung Code-Verdoppelung vermeiden, Wartbarkeit Wofür braucht man Vererbung? Beispiel. Code-Verdoppelung vermeiden, Wartbarkeit Abbilden von Hierarchien Was ist der Unterschied zwischen/nutzen von super. und super()? super. Ruft Variable/Methode der Oberklasse auf super() ruft Konstruktor der Oberklasse auf Wann muss super() explizit implementiert sein? Aufrufen von Oberklassenkonstruktor mit Parametern Kann eine Klasse mehrere Datentypen haben? Beispiel. Via Interf. und Vererb. Seite 16

Mehrere Datentypen für eine Klasse abstract class Freuen{ abstract public void betrachtegeschenk(string geschenk); Seite 17 public void echtefreude(){ System.out.println("FREU!"); public void geheucheltefreude(){ System.out.println("Socken? Äh freu?"); class Montag extends Freuen implements HeiligAbend, Wochentag { public String getdatum() { return "25.12.2006"; public void Beschehrung() { //Geschenke bekommen betrachtegeschenk("socken"); Welche Datentypen besitzt Montag? public void betrachtegeschenk(string geschenk) { If (geschenk.endswith("socken")) geheucheltefreude(); else echtefreude();

Fragenkatalog (10) Nennen Sie ein Beispiel, bei dem das Konzept»Rekursion«eine zentrale Rolle spielt. Verk. Liste Wozu braucht man Packages? Strukturierung, Zugriffsrechte Was bewirkt eine import-anweisung? unqualifizierte Angaben möglich (statt java.util.vector via Import nur Vector) Mit welcher Anweisung weist man eine Klasse einem Package zu? z.b. package Fahrzeug; über der Klasse zu definieren Was muss für eine Klasse gelten, damit sie auf Events reagieren kann? Sie muss einen (oder mehrere) Event Listener implementieren (Interfaces) Sie muss die Methoden des Interfaces implementieren Wie erreicht man, dass ein Objekt die Events bekommt, die für das Objekt relevant sind? Das Objekt muss sich beim Event registrieren. (z.b. addactionlistener()) Seite 18

Fragenkatalog (11) Was bedeutet GUI? Graphical User Interface : graphische Benutzerschnittstelle Was ist Swing, AWT, JFC? Bibliotheken zur Erzeugung von GUI-Objekten AWT älter, Swing mächtiger Zur den JFC gehören alle GUI API s Mit welcher Klasse oder welchen Klassen kann man eigenständige GUI-Fenster erzeugen? awt.window import java.awt.window; Frame neuesfenster = new Frame( neues Fenster"); wnd.setvisible(true); Was ist ein LayoutManager? Zuständig für Anordnung der GUI Elemente;relative Anordnung z.b. BorderLayout, GridLayout, BoxLayout, GridBagLayout, NullLayout Welche wesentlichen Aspekte bei der GUI-Programmierung gibt es? Kontrollelemente, Fenster, Ereignisverarbeitung, Layout Seite 19