CS1005 Objektorientierte Programmierung

Größe: px
Ab Seite anzeigen:

Download "CS1005 Objektorientierte Programmierung"

Transkript

1 CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Objektorientierung I : Statische Klassen Statische Aspekte (Modularisierung) Dynamische Aspekte (Klassen-Objekte) Seite 1 Th Letschert

2 Modularisierung Modularisierung Nach dem Vorbild der Ingenieurwissenschaften (speziell der Elektrotechnik) wird der Quelltext komplexer Software in Module aufgeteilt. Fortschritt in der Softwaretechnik: Zunehmend komplexere Antworten auf die Frage: Was ist ein Software-Modul? Begriff Modul Ursprünglich Maßeinheit / Größe standardisierter Bauteile von Gebäuden später Bezeichnung dieser Bauteile selbst 1950er: Bezeichnung standardisierter Bauteile in der Elektronik nach dem Vorbild der Bautechnik Modul: Standardisiertes austauschbares Bauelement 1970er: Übernahme der Idee und des Begriffs standardisierter Bauteile in die Informatik Modul: Code-Komponente mit definierter Schnittstelle und austauschbarer Implementierung 2000er: Übernahme der Idee und des Begriffs standardisierter Bauteile in die höhere Ausbildung (Lehrveranstaltungen als Module ) Seite 2

3 Modularisierung Funktionen: Erste Modularisierungs-Techniken Unterprogramm-Technik Identischen Programmcode durch Sprünge wiederverwenden Funktionen / Prozeduren Wiederverwendbarer Programmcode mit Parametern (Eingangswerten) Lokale Variablen, lokalem Algorithmus Ergebnis (Rückgabewert) Seite 3

4 Modularisierung Module bestehen klar erkennbar aus Schnittstelle Von außen zugreifbarer Teil der Funktionalität zur Verfügung stellt Implementierung Interner Mechanismus der die Funktionalität realisiert Geheimnisprinzip (Information Hiding Principle) Der Schnittstellen-Anteil soll so groß wie nötig sein. Der Implementierungsanteil soll so groß wie möglich sein. Ein Modul soll möglichst viel zu seinem Geheimnis machen. Schnittstelle ImplemenImplementierung tierung Anwender: ist froh über alles was er nicht wissen muss, wenn er das Bauteil verwenden will. Entwickler: ist froh über alles, auf das der Anwender nicht zugreifen kann: es kann ohne Rücksprache ersetzt werden. Seite 4

5 Modularisierung mit Funktionen Funktionsdefinitionen als Module: Schnittstelle und Implementierung /* * Sortiere eine Liste * Eingabe l: Liste vergleichbarer Daten * Ergebnis: Liste in sortierter Form, aufsteigende Reihenfolge */ Schnittstelle void sort(int[] a) for (int i=0; i<a.length; i++) { for (int j=i+1; j<a.length; j++) { if (a[i] > a[j]) { int t = a[i]; a[i] = a[j]; a[j] = t; Implementierung Seite 5

6 Modularisierung mit Funktionen Statik vs Dynamik Statik Alles was sich auf den Quelltext des Programms bezieht, Alles was vor Programmstart mit dem Programmtext passiert Dynamik Alles was sich auf die Ausführung des Programms bezieht, Alles was zur Laufzeit des Programms passiert. Statik und Dynamik bei Funktionen Statik Funktionsdefinition im Quelltext Dynamik Funktionsinstanz (Stack-Frame) zur Laufzeit Seite 6

7 Modularisierung mit Funktionen Statik und Dynamik bei Funktionen Funktion statischer Aspekt (Modularisierung) dynamischer Aspekt Funktionsinstanz Funktionsdefinition package beispiele; Aufrufe public class Funktionen { private Funktionen() { private static int f(int x, int y) { return 2*x + y; public static void main(string[] args) { int a = 1; int b = 2; System.out.println(f(1, a+b)); 1 x 3 y Funktionsinstanz (Stackframe) des laufenden Aufrufs von f 1 a 2 Funktionsinstanz (Stackframe) des laufenden Aufrufs von main b Stack Seite 7

8 Modularisierung mit Klassen Klasse Klassen sind ein Modularisierungskonstrukt : mit ihnen kann der Quellcode strukturiert werden package rechnen; Struktur: 2 Funktionen und 2 Klassen public class Rechnen { private Rechnen() { Alternative Struktur I public static double div(int x, int y) { if(y == 0) { return Double.MAX_VALUE; else { return ((double) x) / ((double) y); 2 Funktionen und 1 Klasse Alternative Struktur II 1 Funktionen und 1 Klasse package rechnen; public class RechnenUI { private RechnenUI() { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); int x1 = scanner.nextint(); int x2 = scanner.nextint(); System.out.println(Rechnen.div(x1, x2)); scanner.close(); Warum 2 Klassen und 2 Funktionen? Vorteil, Nachteil? Seite 8

9 Modularisierung mit Klassen Klasse Klassen sind ein Modularisierungskonstrukt : sie haben eine Schnittstelle und eine Implementierung /** * Sammlung zahlenteheoretischer Funktionen die niemand braucht. Karl Napp */ public class Zahlentheorie { Schnittstelle /** * Berechnet den ggt von zwei Werten grösser Null. x erstes Argument y zweites Argument groesster gemeinsamer Teiler von x und y IllegalArgumentException falls x<=0 oder y <= 0 */ Implementierung public static int ggt(int x, int y) { if (x <= 0 y <= 0) throw new IllegalArgumentException(); return (x==y)? x : ggt(max(x,y)-min(x,y), min(x,y)); /** * Berechnet das kleinste gemeinsame Vielfache von zwei Werten > Null. x der erste Parameter y der zweite Parameter kleines gemeinsames Vielfache von x und y IllegalArgumentException falls x<=0 oder y <= 0 */ public static int kgv(int x, int y) { if (x <= 0 y <= 0) throw new IllegalArgumentException(); return x*y/ggt(x,y); private static int max(int x, int y) { return x>y?x:y; private static int min(int x, int y) { return x<y?x:y; Seite 9

10 Modularisierung mit Klassen Modularisierung mit Klassen Klassen kapseln (d.h. machen zu einem Modul) Dinge die inhaltlich zusammen gehören: Funktionen mit einem Themenbereich oder Daten und dazugehörigen Operationen Klassen trennen Schnittstelle und Implementierung Schnittstelle: public von außen (anderem Code) benutzbar Implementierung: private von aussen unzugängliche Interna Die Modularisieren führt zu einer besseren Organisation des Codes Entwicklung (klare Zuständigkeiten) Test und Wartung (abgegrenzte Funktionalitäten) werden erleichtert Seite 10

11 Modularisierung mit Klassen Klassen: Können und Wissen Klassen kapseln 1. Funktionen mit einem Themenbereich oder 2. Daten und dazugehörigen Operationen package zahlentheorie; Beispiel: Klasse mit zahlentheoretischen Funktionen public class ZahlenFunktionen { public static int ggt(int x, int y) { return (x==y)? x : ggt(max(x,y)-min(x,y), min(x,y)); public static int kgv(int x, int y) { return x*y/ggt(x,y); private static int max(int x, int y) { return x>y?x:y; private static int min(int x, int y) { return x<y?x:y; Seite 11

12 Modularisierung mit Klassen Klassen: Können und Wissen Klassen kapseln 1. Funktionen mit einem Themenbereich oder 2. Daten und dazugehörigen Operationen public class TelefonVerzeichnis { Beispiel: private Telefonverzeichnis() { private static String[] allenamen = new String[10]; private static int[] allenr = new int[10]; private static int letzterindex = -1; Telefonverzeichnis als Klasse. public static void eintrage(string name, int nr) { letzterindex = letzterindex+1; allenamen[letzterindex] = name; allenr[letzterindex] = nr; TelefonVerzeichnis.eintrage("Hugo", 4711); TelefonVerzeichnis.eintrage("Karla", 8150); public static int suche(string name) { for (int i=0; i<=letzterindex; i++) { if (name == allenamen[i]) { return allenr[i]; return -1; System.out.println(TelefonVerzeichnis.suche("Hugo")); System.out.println(TelefonVerzeichnis.suche("Karla")); Nutzung des Telefonverz. Aufgabe: Analysieren Sie den Code des Beispiels: Was passiert beispielsweise bei einem Eintrag und was, wenn das Verzeichnis voll ist? Seite 12

13 Modularisierung mit Klassen Klassen: Sichtbarkeits-Modifizierer Sichtbarkeits-Modifizierer einer Klasse class C { Die Klasse C kann nur in Klassen des gleichen Pakets verwendet werden. public class C { Die Klasse C kann in jeder anderen Klasse verwendet werden. Sichtbarkeits-Modifizierer einer Klasse-Komponente [public] class C { private x x kann nur in der Klasse C verwendet werden. [public] class C { x x kann nur in der Klassen des gleichen Pakets verwendet werden. [public] class C { public x x kann in der Klassen verwendet werden, die Zugriff auf C haben. Seite 13

14 Modularisierung mit Klassen Klassen: Code um Kompetenzbereiche organisieren! public class TelefonBuchAnwendung { static String[] allenamen = new String[100]; static int[] allenr = new int[100]; static int letzterindex = -1; static void eintrage(string name, int nr) { letzterindex = letzterindex+1; allenamen[letzterindex] = name; allenr[letzterindex] = nr; static int suche(string name) { for (int i=0; i<=letzterindex; i++) { if (name == allenamen[i]) { return allenr[i]; return -1; public static void main(string args[]) { eintrage("hugo", 4711); eintrage("karla", 8150); System.out.println(suche("Hugo")); System.out.println(suche("Karla")); Das ist Mist Warum? Seite 14

15 Modularisierung mit Klassen Klassen: Code um Kompetenzbereiche organisieren! public class TelefonBuchAnwendung { static String[] allenamen = new String[100]; static int[] allenr = new int[100]; static int letzterindex = -1; static void eintrage(string name, int nr) { letzterindex = letzterindex+1; allenamen[letzterindex] = name; allenr[letzterindex] = nr; Verwaltung von Namen und Nummern static int suche(string name) { for (int i=0; i<=letzterindex; i++) { if (name == allenamen[i]) { return allenr[i]; return -1; public static void main(string args[]) { eintrage("hugo", 4711); eintrage("karla", 8150); System.out.println(suche("Hugo")); System.out.println(suche("Karla")); Kompentenzbereiche Kommunikation mit dem Endbenutzer Seite 15

16 Modularisierung mit Klassen Klassen: Code um Kompetenzbereiche organisieren!? Das ist gut Warum? Seite 16

17 Klassen Dynamik Statik und Dynamik bei Klassen Statik Klassendefinition im Quelltext Dynamik Klassen-Instanz (Objekt) zur Laufzeit Seite 17

18 Klassen Dynamik Statik und Dynamik bei Klassen Klasse statischer Aspekt (Modularisierung) dynamischer Aspekt Klasseninstanz (Klassen-Objekt) Klassendefinition public class TelefonVerzeichnis { private TelefonVerzeichnis() { private static String[] allenamen = new String[10]; private static int[] allenr = new int[10]; private static int letzterindex = -1; public static void eintrage(string name, int nr) { letzterindex = letzterindex+1; allenamen[letzterindex] = name; allenr[letzterindex] = nr; public static int suche(string name) { for (int i=0; i<=letzterindex; i++) { if (name == allenamen[i]) { return allenr[i]; return -1; Klassen-Objekt TelefonVerzeichnis -1 letzterindex allenr allenamen Heap Seite 18

19 public class TelefonVerzeichnis { private TelefonVerzeichnis() { Klassen Dynamik private static String[] allenamen = new String[10]; private static int[] allenr = new int[10]; private static int letzterindex = -1; Das Klassen-Objekt public static void eintrage(string name, int nr) {... ist ein Repräsentant der Klasse zur Laufzeit Es wird im Speicher angelegt In einem Bereich der Heap genannt wird public static int suche(string name) { for (int i=0; i<=letzterindex; i++) { if (name == allenamen[i]) { return allenr[i]; return -1; Stack und Heap Stack: Der Speicherbereich für aktive Funktionsinstanzen Heap: Der Speicherbereich für aktive (Klassen-) Instanzen (Objekte) TelefonVerzeichnis.eintrage("Hugo", 4711); TelefonVerzeichnis.eintrage("Karla", 8150); System.out.println(TelefonVerzeichnis.suche("Hugo")); System.out.println(TelefonVerzeichnis.suche("Karla")); Stack name Klassen-Objekt TelefonVerzeichnis Karla Funktionsinstanz (Stackframe) des 2-ten Aufrufs von Telefonverzeichnis.suche Funktionsinstanz (Stackframe) des laufenden Aufrufs von main letzterindex allenr allenamen Seite eintrag e(strin g name, int nr) suche(s tring name) Hugo Karla Heap...

20 Klassen Dynamik Das Klassen-Objekt ist ein Repräsentant der Klasse zur Laufzeit Es wird im Speicher angelegt In einem Bereich der Heap genannt wird Es enthält: Den Code jeder Methode der Klasse (statisch oder nicht) alle statischen Variablen der Klasse (engl. static field) Hugo letzterindex allenr allenamen Karla... Klassen-Objekt TelefonVerzeichnis public static void eintrage(string name, int nr) {... public static int suche(string name) {... Seite 20 Heap

21 Klassen Dynamik Zugriff auf das Klassen-Objekt Zugriff auf Bestandteile des Klassenobjekts KlassenName. NameDerStatischenVariable KlassenName. NameDerStatischenMethode Zugriff auf das gesamte Klassenobjekt KlassenName. class Seite 21

22 Klassen Dynamik Zugriff auf das Klassen-Objekt Beispiel: package telefonverzeichnis; import java.lang.reflect.field; import java.lang.reflect.method; public class TelefonVZUI { public static void main(string[] args) { direkter Zugriff auf Komponenten des Klassenobjekts TelefonVerzeichnis.eintrage("Hugo", 4711); TelefonVerzeichnis.eintrage("Karla", 8150); System.out.println(TelefonVerzeichnis.suche("Hugo")); System.out.println(TelefonVerzeichnis.suche("Karla")); System.out.println(TelefonVerzeichnis.class); Zugriff auf das Klassen-Objekt insgesamt System.out.println("Die Variablen von TelefonVerzeichnis: "); for (Field f : TelefonVerzeichnis.class.getDeclaredFields()) { System.out.println(" " + f); System.out.println(); System.out.println("Die Methoden von TelefonVerzeichnis: "); for (Method m : TelefonVerzeichnis.class.getDeclaredMethods()) { System.out.println(" " + m); Zugriff auf Komponenten des Klassen-Objekts über das Klassenobjekt insgesamt System.out.println(TelefonVZUI.class); System.out.println("Die Variablen von TelefonVZUI: "); for (Field f : TelefonVZUI.class.getDeclaredFields()) { System.out.println(" " + f); System.out.println(); System.out.println("Die Methoden von TelefonVZUI: "); for (Method m : TelefonVZUI.class.getDeclaredMethods()) { System.out.println(" " + m); Seite 22

23 Klassen Dynamik Zugriff auf das Klassen-Objekt Beispiel: System.out.println(TelefonVerzeichnis.suche("Hugo")); System.out.println(TelefonVerzeichnis.suche("Karla")); System.out.println(TelefonVerzeichnis.class); System.out.println("Die Variablen von TelefonVerzeichnis: "); for (Field f : TelefonVerzeichnis.class.getDeclaredFields()) { System.out.println(" " + f); class telefonverzeichnis.telefonverzeichnis Die Variablen von TelefonVerzeichnis: private static java.lang.string[] telefonverzeichnis.telefonverzeichnis.allenamen private static int[] telefonverzeichnis.telefonverzeichnis.allenr private static int telefonverzeichnis.telefonverzeichnis.letzterindex Die Methoden von TelefonVerzeichnis: public static void telefonverzeichnis.telefonverzeichnis.eintrage(java.lang.string,int) public static int telefonverzeichnis.telefonverzeichnis.suche(java.lang.string) class telefonverzeichnis.telefonvzui Die Variablen von TelefonVZUI: Die Methoden von TelefonVZUI: public static void telefonverzeichnis.telefonvzui.main(java.lang.string[]) Seite 23

24 Statische / Nicht-Statische Klassen Zwei Arten von Klassen Statische Klassen enthalten nur statische Komponenten (Methoden / Variablen) zur Laufzeit wird nur das Klassen-Objekt erzeugt Nicht statische Klassen enthalten auch oder nur nicht-statische Komponenten (Methoden / Variablen) zur Laufzeit wird das Klassen-Objekt erzeugt und dazu eventuell noch weitere Objekte Seite 24

25 Klassen Rückblick Klassen statische Aspekte Mit Klassen wird die Struktur des Quellcodes verbessert Sie erlauben es Schnittstelle und Implementierung zu trennen (Modularisierung) Code in Form von Kompetenz-Feldern mit Können und Wissen zu organisieren Klassen dynamische Aspekte Klassen werden zur Laufzeit durch Instanzen (Objekte) repräsentiert Jede Klasse hat ein Klassenobjekte mit den Daten Methoden der Klasse Nicht-Statische Klassen können darüber hinaus noch weitere Objekte erzeugen Seite 25

CS1005 Objektorientierte Programmierung

CS1005 Objektorientierte Programmierung CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Funktionen / statische Methoden - Definition - Verwendung - Ausführung Seite 1 Th Letschert Funktionen: Definition und Verwendung

Mehr

OOP Aufgabenblatt 4 2. November 2013

OOP Aufgabenblatt 4 2. November 2013 1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 4 2. November 2013 Aufgabe 1 1. Wenn eine Funktion f in der Mathematik, Physik oder sonst wo definiert ist als f(x) = 2 x + 5 kann man dann f(5), f(x), f(2 x),

Mehr

CS1005 Objektorientierte Programmierung

CS1005 Objektorientierte Programmierung CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Objektorientierung II: Klassen und Objekte Klassen: Statische und dynamische Aspekte Objekt- und Klasseninitialisierung OO-Entwurf:

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS005 Objektorientierte Programmierung Bachelor of Science (Informatik) Th Letschert Felder Seite Th Letschert OOP Felder / Arrays Seite 2 Th Letschert Feld / Array Feld (auch Array) Daten unter einem

Mehr

OOP Aufgabenblatt November 2013

OOP Aufgabenblatt November 2013 1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 5 12. November 2013 Aufgabe 1 Betrachten Sie folgende Funktion zur Division von ganzzahligen Werten: /** * Dividiert zwei ganzzahlige Werte und liefert das Ergebnis

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

6 Speicherorganisation

6 Speicherorganisation 6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Geheimnisprinzip und Kapselung - Klassen zur Unterstützung des Geheimnisprinzips - Einsatz einer Klasse als Modul und / oder Typ

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Klassenvariablen, Klassenmethoden

Klassenvariablen, Klassenmethoden Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Objektorientierte Programmierung und Klassen

Objektorientierte Programmierung und Klassen Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP

Mehr

Programmiertechnik Objektorientierung, Teil 2

Programmiertechnik Objektorientierung, Teil 2 Programmiertechnik Objektorientierung, Teil 2 Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Einschub: Pakete Java-Klassen können in Paketen organisiert sein. Ein Paket (package) ist eine Sammlung

Mehr

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java

Mehr

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

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Informatik II. Woche 13, Giuseppe Accaputo

Informatik II. Woche 13, Giuseppe Accaputo Informatik II Woche 13, 30.03.2017 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Nachbesprechung Self-Assessment Test Nachbesprechung Übung 5 Java: Objektorientierte Programmierung Klassen und Objekte

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

7. Objektorientierung. Informatik II für Verkehrsingenieure

7. Objektorientierung. Informatik II für Verkehrsingenieure 7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Informatik Funktionen

Informatik Funktionen Informatik Seite 1 Funktion Mathematik: Zuordnung Argumentwert(e) => Ergebniswerte Beispiel: f(x,y) = 2*x+y Informatik / Programmierung: Zusammenfassung von Anweisungen die von Argumentwerten abhängen

Mehr

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 12. März 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen

Mehr

CS1005 Objektorientierte Programmierung

CS1005 Objektorientierte Programmierung CS005 Objektorientierte Programmierung Bachelor of Science (Informatik) Felder / Arrays Seite Th Letschert Datentypen und Datenstrukturen Datentyp Format / Operationen für ein Datum c z.b. ganze Zahl im

Mehr

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren

Mehr

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

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Alexander Lochmann, Iman Kamehkhosh, Marcel Preuß, Dominic Siedhoff Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Ausnahmen

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Ausnahmen Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Ausnahmen Motivation Anwendungsbeispiel 1: java Excep1 a: 15 b: 3 a / b = 5 Job done. Konsole Anwendungsbeispiel 2: Konsole java

Mehr

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

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Philipp Güttler Objektorientierung und komplexe Datentypen

Philipp Güttler Objektorientierung und komplexe Datentypen Philipp Güttler 23.04.2008 Objektorientierung und komplexe Datentypen Seite 2 Was bedeutet objekt-orientiert? Programmierung ist die Umsetzung von Sachverhalten und Aufgaben Zusammenfassen und Aufteilen

Mehr

Informatik II Aufgabenblatt 1

Informatik II Aufgabenblatt 1 Prof. Dr. Th. Letschert FB MNI TH Mittelhessen StudiumPlus Informatik II Aufgabenblatt 1 Gruppenübung Aufgabe 1 Ein Telefonverzeichnis ist eine Zuordnung (Abbildung) von Namen zu Telefonnummern. Zuordnungen

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

Informatik II. Vordefinierte Datenstrukturen. - Abbildungen Map. Seite 1 Th Letschert, THM

Informatik II. Vordefinierte Datenstrukturen. - Abbildungen Map. Seite 1 Th Letschert, THM Informatik II Vordefinierte atenstrukturen - Listen List - bbildungen Map - Mengen Set Seite 1 Th Letschert, THM atenstrukturen atenstrukturen Sprachelemente zur strukturierten Speicherung von aten atentyp

Mehr

public class Test extends MiniJava { public static void main (String [] args) { write(args[0]+args[1]); } } // end of class Test

public class Test extends MiniJava { public static void main (String [] args) { write(args[0]+args[1]); } } // end of class Test Manche Funktionen, deren Ergebnistyp void ist, geben gar keine Werte zurück im Beispiel: write() und main(). Diese Funktionen heißen Prozeduren. Das Hauptprogramm hat immer als Parameter ein Feld args

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10 Klausur zur Lehrveranstaltung Technische Informatik für Ingenieure WS 2009/10 22. Februar 2010 Aufgabe 1 2 3 4 5 6 7 Summe mögliche Punkte 15 15 20 15 20 20 15 120 erreichte Punkte Note: Hinweise: Diese

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Tag 7 Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java) Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

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

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch Klassen (Java) vs. Records (Pascal) 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Pascal RECORDs in Pascal sind reine

Mehr

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

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 29. August 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Teil 9: Ausnahmebehandlung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 8. Dezember

Mehr

Scala Einstieg- und Aufwärmungübungen. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Nebenläufige und verteilte Programme

Scala Einstieg- und Aufwärmungübungen. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Nebenläufige und verteilte Programme 1 Prof. Dr. Th. Letschert Nebenläufige und verteilte Programme Scala Einstieg- und Aufwärmungübungen Dieses Aufgabenblatt dient dem Einstieg in Scala, bzw. dem Aufwärmen der Kenntnisse. Es enthält einige

Mehr

2. Unterprogramme und Methoden

2. Unterprogramme und Methoden 2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen

Mehr

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung 275 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Klassen (Java) vs. Records (Pascal) 276 Pascal RECORDs in Pascal sind

Mehr

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement

Mehr

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - Selektoren public class Rechteck

Mehr

Klausur Software-Entwicklung März 01

Klausur Software-Entwicklung März 01 Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Erste Java-Programme (Scopes und Rekursion)

Erste Java-Programme (Scopes und Rekursion) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 16. August 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

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

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Virtuelle Methodentabellen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Struktur der Objektorientierung Ein wenig Java: public

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

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

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden

Mehr

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Ergebnisse teilgenommen: 73 nicht bestanden: 22 bestanden: 51 davon 4er: 12 davon 3er: 18 davon 2er: 15 davon 1er: 6 Aufgabe 1: Tracing 4 Punkte

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Allgemeines - Prinzipien

Allgemeines - Prinzipien OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen

Mehr

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache

Mehr

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 -

Mehr

Informatik II Übung 5

Informatik II Übung 5 Informatik II Übung 5 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 27.03.2013

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Informatik II Übung 05. Benjamin Hepp 3 April 2017

Informatik II Übung 05. Benjamin Hepp 3 April 2017 Informatik II Übung 05 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 April 2017 Java package Hierarchie import.. nur noetig um Klassen aus anderen Packeten zu importieren Es kann auch immer der vollstaendige

Mehr

Fakultät IV Elektrotechnik/Informatik

Fakultät IV Elektrotechnik/Informatik Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden

Mehr

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

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 02: Methoden Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 17 Inhalt Scanner

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen

Mehr

OOP Aufgabenblatt 8 2. Dezember 2013

OOP Aufgabenblatt 8 2. Dezember 2013 1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 8 2. Dezember 2013 Aufgabe 1 1. Was bedeutet das Wort public vor einer Klassendefinition? 2. Was bedeutet das Wort public vor einer Methodendefinition? 3. Ist

Mehr

Programmiertechnik Klassenmethoden

Programmiertechnik Klassenmethoden Programmiertechnik Klassenmethoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation Programm zur Berechung von public class Eval1 { public static void main(string[] args) { java.util.scanner

Mehr

Speicher und Adressraum

Speicher und Adressraum Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode

Mehr

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 6. Juli 2018 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 27. August

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

Statische und Nichtstatische Methoden Properties/ Eigenschaften

Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische

Mehr

Modularisierung in Java: Pakete Software Entwicklung 1

Modularisierung in Java: Pakete Software Entwicklung 1 Modularisierung in Java: Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Um zusammengehörende Klassen, Interfaces, etc. gemeinsam zu verwalten, Sichtbarkeiten einzugrenzen und

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Klassenmethoden

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Klassenmethoden Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Klassenmethoden Motivation Programm zur Berechnung von public class Eval1 { public static void main(string[] args) { java.util.scanner

Mehr

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Juli 2017 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 28. August

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration

Mehr