Vorkurs Informatik WiSe 16/17
|
|
- Guido Böhme
- vor 5 Jahren
- Abrufe
Transkript
1 Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12 bis Technische Universität Braunschweig, IPS
2 Überblick Warum OOP? OOP mit Java 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 2 Institut für Programmierung
3 Eine kleine Geschichte 1 Spezifikation GUI mit Formen: Quadrat, Kreis Dreieck Klick auf Form: Drehen um 360 im Mittelpunkt Pro Form bestimmte AIF Audiodatei abspielen Zwei Programmierer: Larry und Brad Wer zuerst liefert, bekommt einen neuen Bürostuhl. Larry arbeitet prozedural Brad arbeitet objektorientiert 1 Entnommen aus Head First Java - Second Edition, Kapitel 2
4 Die erste Version Larry überlegt sich: Was muss das Programm machen? rotate und playsound welche auf Formen reagieren rotate(shapenum) { //Rotiere Form um 360 Grad playsound(shapenum) { // Prueft, welche AIF zur Form gehoert // Spiele Datei ab Brad überlegt sich: Welche Dinge tauchen im Programm auf? Formen, welche etwas ausführen rotate und playsound class Triangle { rotate() { //Drehe ein Dreieck playsound() { //Spiele AIF fuer ein Dreieck ab class Circle { rotate() { //Drehe einen Kreis playsound() { //Spiele AIF fuer einen Kreis ab class Square { rotate() { //Drehe ein Rechteck playsound() { //Spiele AIF fuer ein Rechteck ab
5 Aber... Larry wird als erster fertig. Aber es gibt eine Änderung der Spezifikation: Erweiterung der Spezifikation Neue amöbenartige Form HIF Sounddatei für die Amöbe (Bild aus HFJ)
6 Die zweite Version Larray passt die playsound an (+)Schnell (-)Muss getesteten Code ändern! (-)Unübersichtlich playsound(shapenum) { if (/*Form ist keine Amoebe*/) { // Prueft, welche AIF zur Form gehoert // Spiele Datei ab else { //Spiele Amoeben HIF Sounddatei ab Brad erstellt eine neue Klasse (+)Übersichtlich (+)Lokale Änderungen (-)Muss Code kopieren! (-)Langsam class Amoeba { rotate() { //Drehe Amoebe playsound() { //Spiele HIF fuer ein Amoebe ab
7 Der Projektmanager schlägt wieder zu Larry wird wieder als erster fertig. Aber es noch gibt eine Änderung der Spezifikation: Änderung der Spezifikation Die Amöbe soll sich um einen frei wählbaren Punkt drehen (Bild nach HFJ)
8 Die dritte Version Larray muss die Definition ändern. (-)Anpassen jedes Aufrufs vonrotate! (-)Führt schnell zu Fehlern (-)Unübersichtlich rotate(shapenum, xpt, ypt) { if (/*Form ist keine Amoebe*/) { //Rotiere um Box -Mittelpunkt else { //Rotiere um xpt und ypt Brad passt die Klasse an. (+)Lokale Änderungen (+)Übersichtlich (+)Schnell class Amoeba { int xpoint int ypoint rotate() { //Drehe Amoebe um xpoint und ypoint playsound() { //Unveraendert
9 Der Trick mit der Vererbung Verursacht Brads OOP Ansatz doppelten Code zwischen den Methoden? Nicht unbedingt Auslagern gemeinsamer Eigenschaften in übergeordnete Klasse Vererbung Bild aus Head First Java - Second Edition
10 Noch ein Trick: Überschreiben Nun würden aber alle Formen gleich rotieren Die Amöbe würde das Verhalten der Elternklasse erben. Methoden können in Unterklassen geändert werden Überschreiben von Methoden
11 Überblick Warum OOP? OOP mit Java 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 11 Institut für Programmierung
12 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen Einfacheres Ändern von Programmen Wiederverwendung von Programmteilen 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 12 Institut für Programmierung
13 Klassen in Java ZugriffsBeschraenker class KlassenName { // Attribute // Methoden Eine Klasse mit public-zugriffsbeschränker pro.java-datei 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 13 Institut für Programmierung
14 Attribute in Java Attribute beschreiben die Daten, die jedes Objekt speichert Klasse gibt an, welche Attribute Objekte dieser Klasse haben Jedes Objekt verfügt über eine eigene Kopie dieser Attribute Änderungen an den Attributen eines Objektes wirken sich nur auf dieses Objekt aus Attribute sollen fast immer private sein. Werden fast wie lokale Variablen definiert. ZugriffsBeschraenker class KlassenName { T attributsname; T attributsname = Initialisierungswert. // Methoden
15 Methoden Methoden sind die Aktionen, die mit einem Objekt ausgeführt werden können Statische Methoden kennen wir schon Unterschied zu statischen Methoden: Sie arbeiten auf einzelne Objekte ZugriffsBeschraenker class KlassenName { // Attribute Zugriffsbeschraenker Rueckgabetyp name(t1 Paramter1,...) { // Anweisungen 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 15 Institut für Programmierung
16 Zugriffsbeschränker Zugriffsbeschränker erlauben es, Elemente von Klassen vor dem Zugriff von außen versteckt. Dies erschwert unsachgemäße Verwendung von Objekten und erleichtert Kapselung. Beschränker Klasse Paket Unterklassen Rest public Y Y Y Y protected Y Y Y N keine Angabe Y Y N N private Y N N N Normalerweise reichen public und private. 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 16 Institut für Programmierung
17 Beispiel: Counter public class Counter { private int count; public void increase() { count ++; public int getcount() { return count; public void reset() { count = 0; 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 17 Institut für Programmierung
18 Erzeugen von Objekten Wir können nun selber Klassen erstellen, wie werden diese nun verwendet? new erzeugt neue Objekte auf dem Heap. Syntax: new Klassenname(Konstruktorparameter) new gibt eine Referenz auf das neue Objekt zurück Stack Heap obj, Counter, Counter { count, int, 1 description, String, String {... Counter c = new Counter();
19 null Nullreferenz Variable von Referenztyp zeigt auf nichts Standardwert von Attributen mit Referenzdatentyp Counter c = null; 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 19 Institut für Programmierung
20 Der. Operator Wir können jetzt neue Objekte erzeugen. Wie benutzt man nun ein Objekt? Der.-Operator kann auf eine Referenz angewendet werden, um auf die Attribute und Methoden des referenzierten Objektes zuzugreifen. Voraussetzung ist, dass der Zugriff erlaubt ist (Beschränker) Syntax: referenz.element Counter c = new Counter(); c.increase(); c.increase(); c.reset(); 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 20 Institut für Programmierung
21 Konstruktoren Oft müssen beim Erzeugen von Objekten Attribute initialisiert werden Vom Benutzer der Klasse zu verlangen, dass er die Attribute selber nach dem Erzeugen setzt, kann zu Fehlern führen Konstruktoren sind Methoden, die beim Erzeugen des Objektes aufgerufen werden. Kein Rückgabetyp, Gleicher Name wie Klasse Falls keiner selber definiert: Default Konstruktor ohne Parameter Klassenname() wird automatisch erzeugt Konstruktoren werden nicht vererbt 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 21 Institut für Programmierung
22 Beispiel: Counter public class Counter { private int count; public Counter() { this(1); public Counter( int start) { count = start; public void increase() { count ++; public int getcount() { return count; public void reset() { count = 0;
23 Verdecken von Attributen und this Lokale Variablen und Methodenparameter können Attribute verdecken Zugriff auf lokale Variable anstatt aufs Attribut this ist eine Referenz auf das aktuelle Objekt Kann benutzt werden, um trotz des Verdeckens auf das Attribut zuzugreifen. 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 23 Institut für Programmierung
24 Was Passiert? public class Counter { private int count = 100; public void nichtverdeckt() { System. out. println( count); public void verdeckt() { int count = 0; System. out. println( count); public void verdecktparam( int count) { System. out. println( count); public void verdecktthis() { int count = 0; System. out. println( this. count);
25 static static markiert Elemente von Klassen als statisch Wird normalerweise hinter dem Zugriffsbeschränker angegeben Für statische Attribute existiert nur eine einzige Kopie, die von allen Objektinstanzen dieser Klasse geteilt wird. Statische Methoden können ohne Objektinstanz genutzt werden, dürfen aber auch nur auf statische Elemente der Klasse zugreifen Nicht-statische Attribute existieren ja nur für Objektinstanzen, statische Methodenaufrufe operieren auf keinem Objekt Zugriff mit Klassenname.Element 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 25 Institut für Programmierung
26 Was Passiert? public class Statisch { public int a = 0; public static int b = 1; public static void main( String[] args) { Statisch n1 = new Statisch(); n1.a = 1; Statisch n2 = new Statisch(); n2.a = 2; System. out. println(n1.a); System. out. println(n2.a); n1.b = 5; System. out. println(n1.b); System. out. println(n2.b); System. out. println( Statisch.b);
27 Überladen von Methoden Mehrere Methoden in einer Klasse können den selben Namen haben Müssen sich in der Parameterliste unterscheiden (durch andere Typen, andere Anzahl von Parametern oder beidem) Rückgabetyp wird nicht zur Unterscheidung herangezogen Auswahl der passenden Methode geschieht zur Kompilierzeit 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 27 Institut für Programmierung
28 Was Passiert? public class Overload { public void foo( Object a) { System. out. println(" Das war ein Object"); public void foo( String a) { System. out. println(" Das war ein String"); public static void main( String[] args) { Overload o = new Overload(); Object obj = new String(" Foobar"); o. foo( obj); String str = new String(" Foobar"); o. foo( str);
29 final final vor Attributen und lokalen Variablen verhindert das Ändern derer Werte Für Referenztypen heißt dies: Es kann nicht geändert werden, worauf die Referenz zeigt. Das referenzierte Objekt an sich ist jedoch noch veränderbar. final vor Klassen: Von der Klasse kann nicht geerbt werden final vor Methoden: Kein Überschreiben möglich import java. util.*; public class Fin { public static final String[] strings = new String[1]; public static final int ANSWER = 42; public static void main( String[] args) { System. out. println(l); // Geht nicht, da l final ist // strings = new String [42]; // Das referenzierte Objekt selbst kann geaendert werden strings[1] = " Test"; System. out. println(l);
30 Demo: Geometrie von Imperativ zu OOP Live in der Vorlesung Demo: Geometrie 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 30 Institut für Programmierung
31 Überblick und Ausblick Warum OOP? Vererbung Polymorphie Klassen Attribute Methoden Modifier null Datenstrukturen 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 31 Institut für Programmierung
32 Danke Vielen Dank für Ihre Aufmerksamkeit! 12 bis Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 32 Institut für Programmierung
Vorkurs Informatik WiSe 17/18
Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 11. bis 13.10.2017 Technische Universität Braunschweig, IPS Warum OOP? OOP mit Java
MehrInstitut 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
MehrJava Grundlagen 2 - OOP
Institut für Programmierung und Reaktive Systeme Java Grundlagen 2 - OOP Markus Reschke 20.08.2014 Eine kleine Geschichte 1 Spezifikation Es sollen Formen in einer GUI angezeigt werden: Ein Quadrat, ein
MehrVorkurs Informatik WiSe 15/16
Institut für Programmierung und Reaktive Systeme Vorkurs Informatik WiSe 15/16 Java 5 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Überblick
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
MehrVorkurs Informatik SoSe18
Vorkurs Informatik SoSe18 Java Methoden Dr. Werner Struckmann / Maximilian von Unwerth, 27.03.2018 Einleitung Rekursion Übung Objektorientierung OOP mit Java Vererbung Weitere Beispiele 27.03.2018 Dr.
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
MehrVorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
MehrJava 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
MehrImplementieren 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
MehrRepetitorium 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
MehrPropä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
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrVorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
MehrVorkurs Informatik WiSe 16/17
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrEinstieg 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
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrVorkurs Informatik WiSe 16/17
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrEinstieg 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:
MehrObjektorientierte 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
MehrVererbung. 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
MehrMethoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
MehrObjektorientierte 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
MehrVererbung, 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
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
MehrSilke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch
MehrVorkurs Informatik WiSe 17/18
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann
MehrObjektorientierte Programmierung III
Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen
MehrSilke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
MehrMapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017
Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden
MehrAlgorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
MehrVorkurs Informatik WiSe 17/18
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann
MehrEinstieg 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
Mehr7. Ü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
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
Mehr4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
MehrProgrammieren 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
MehrAllgemeines - 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
MehrNeben 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
MehrObjekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.
Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 03: Wiederholung Klassen & Objekte Kyrill Schmid Lehrstuhl für Mobile und Verteilte Systeme Wiederholung Heutige Agenda Klassen, Objekte, Attribute und Methoden Das Schlüsselwort
MehrArten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
MehrObjektorientierung. Marc Satkowski 20. November C# Kurs
Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) Übungsorganisation Bringen Sie Ihren Labtop in die Übungen mit! 09.10.2017 CuP - VO 2 Programmieren 1. Definition der Aufgabe, die das Programm lösen soll. 2.
Mehr7. 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
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
MehrEinführung in das Programmieren Probeklausur Lösungen
Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 03: Wiederholung Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Wiederholung Klassen, Objekte, Attribute und Methoden Das Schlüsselwort
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
MehrTag 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
MehrKlassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive
MehrTag 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
Mehr14. 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
MehrTeil 2: OOP und JAVA (Vorlesung 11)
Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil
MehrDer Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.
Der Operator this Wir betrachten nochmals die Klassendefinition von Ballon. public class Ballon { private int durchmesser; private int x1, y1; private Color farbe =Color.black; // Konstruktor ohne Farbe
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Methoden / Funktionen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick 2 Zweck von Methoden 3 Methodendefinition
MehrVariablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
Mehr14. 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
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
Mehr11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell
Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 11. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische
MehrObjektorientierte Programmierung
C++ Objektorientierte Programmierung Erweiterung von selbstdefinierten Datentypen (struct) zu Klasse. Eine Klasse besteht dann aus - Attributen (Untertypen wie struct) und zusätzlich - aus Methoden (Funktionen
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrPraxis der Programmierung
Klassenvariablen und -methoden, Vererbung Institut für Informatik und Computational Science Henning Bordihn 1 Klassenvariablen und -methoden 2 Klassenvariablen und -methoden werden mit dem Schlüsselwort
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen
MehrJavakurs 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
MehrStatische 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
MehrC# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 2: Einstieg in die OOP
C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 2: Einstieg in die OOP 1/27/2012 1 Di Datentypen Arrays Operatoren Parameter Überladen Heap / Stack Klassen (un)boxing Tag
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
MehrMethoden. 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
MehrExceptions und Vererbung
Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling
MehrProgrammieren 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
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1
MehrVorkurs Informatik WiSe 15/16
Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
MehrTafelübung 07 Algorithmen und Datenstrukturen
Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrKlassen und Konstruktoren in Java
Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle
MehrSoftware 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
MehrEinfü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
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
Mehr