Vorlesung Programmieren. Hauptaufgabe des Programmierers. Maschinensprache Beispiel für x86 PCs. Zusammenfassung
|
|
- Elke Böhm
- vor 7 Jahren
- Abrufe
Transkript
1 Vorlesung Programmieren Zusammenfassung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck Hauptaufgabe des Programmierers Der Maschine beibiegen, was sie tun soll Problem: Computer sind dumm Security - 04 Cryptology 2 Maschinensprache Beispiel für x86 PCs : EA C0 07 B4 00 CD 16 2C C : C1 B4 0E BB B0 0D CD 10 B0 20 CD 10 CD : B0 0D CD C8 3C DB 3C 3A 72 0C 3C : 73 D3 B0 31 CD C8 2C 0A CD 10 EB C Problem: Maschinensprache ist (für Menschen) schwer verständlich Daher: Speziell ausgebildete Fachkräfte, die Maschinensprache fehlerfrei erzeugen können Diese heißen Programmierer 3
2 Darstellung von Zahlen im Binärsystem Analog zum Dezimalsystem Beispiel Basis 10: Basis 2: Diese Darstellung erlaubt einfaches Umrechnen in andere Zahlensysteme Basis 2 Basis 10 Basis Security - 04 Cryptology 4 Umrechnung: Binär- nach Dezimalsystem Beispiel: = Beispiel: = Umrechnung: Dezimal- nach Binärsystem Horner-Schema 14 2 = 7R0 Least significant bit (LSB) 7 2 = 3R1 3 2 = 1R1 1 2 = 0R1 Most significant bit (MSB) 1110 MSB LSB 6
3 Hexadezimalsystem (zur Basis 16) Neben dem Binärsystem gibt es für den Programmierer noch ein weiteres wichtiges Zahlensystem Das Hexadezimalsystem, kurz: hex 16 Ziffern: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f a bis f stehen für die Zahlen 10 bis 15 Groß-/Kleinschreibung unerheblich (a = A) Umrechnung zwischen Dezimal und Hex analog zum Binärsystem 7 Umrechnung zwischen Zahlensystemen Umrechnung von beliebigen Quell- und Zielsystemen Möglichkeit 1: Zunächst Überführung vom Quellsystem ins Dezimalsystem (Zwischensystem) Überführung vom Zwischensystem ins Zielsystem Möglichkeit 2: Haben beide Systeme Zweierpotenzen als Basen, kann die Umrechnung durch Umgruppieren vereinfacht werden Security - 04 Cryptology 8 Beispiel ohne Umgruppieren 7DA 16? 2 Schritt 1: Umrechnung ins 10er-System = = 2010 (7 16) + 13) = = = DA Schritt 2: Umrechnung ins Zielsystem (hier 2er System) 2010 / 2 = 1005 Rest / 2 = 502 Rest / 2 = 251 Rest Security - 04 Cryptology 9
4 Umrechnen mit Umgruppieren 7DA 16? 2 Umgruppieren möglich da Binärsystem: 2 = 2¹ Hexadezimalsystem: 16 = 2⁴ Eine Stelle im Hexadezimalsystem entspricht vier Stellen im Binärsystem 7 16 = 7 10 = D 16 = = A 16 = = D A Security - 04 Cryptology 10 Rechnen mit binären Zahlen Alle Grundrechenarten funktionieren auch im Binärsystem Natürlich auch in allen anderen Zahlensystemen Insbesondere auch im Hexadezimalsystem Bisher: Nur positive ganze Zahlen Wie geht man mit vorzeichenbehafteten ganzen Zahlen um? Wie stellt man -7 im Computer dar? 11 Negative Binärzahlen im Einerkomplement Zur Vorzeichenumwandlung (+ - bzw. - +) wird jedes Bit invertiert Beispiel: Darstellung als 4-Bit Binärzahl: Bitweise invertiert: Erstes Bit 1: negative Zahl Zahlenwert bestimmen: Invertieren Security - 04 Cryptology 12
5 Addition im Einerkomplement: 4+(-2) Problem bei Addition: Round Carry Übertrag! (1) Negative Binärzahlen im 2er-Komplement Alternative zum 1er-Komplement Vorzeichenumwandlung Invertiere bitweise und addiere 1 Alternativ: 1er-Komplement + 1 Beispiel: invertiere( ) Security - 04 Cryptology 14 Addition im 2er-Komplement Beispiel: 4+(-2) Als 4-Bit Zahl 4 10 = = er-Komplementdarstellung ist sehr praktisch! Moderne Rechner arbeiten mit dieser Darstellung Übertrag kann ignoriert werden 15
6 32-Bit-Fließkommazahlen nach IEEE 754 Rechner verwenden Darstellung nach IEEE 754 IEEE 754 verwendet Platzspartrick Mantisse beginnt immer mit einer 1 (außer bei der Zahl 0) Durch Weglassen dieser Ziffer gewinnt man ein Bit Format einer 32-Bit IEEE 754-Fließkommazahl V Exponent (8 Bit) Mantisse (23 Bit, Nachkommateil) Vorzeichen (1-Bit) Bit-Fließkommazahlen nach IEEE 754 Wert des Exponenten e effektiv definiert als e effektiv = e (= e ) Dadurch gilt e = (1-127 = -126) e effektiv = -126 e = ( = 0) Komma nicht verschoben e = ( = 127) e effektiv = +127 V Exponent e (8 Bit) Mantisse m (23 Bit, Nachkommateil) Bit-Fließkommazahlen nach IEEE 754 Binärer Wert g einer Fließkommazahl (für e 0 und m 0) v g = ( 1) (1, m) 10 e Problem: Darstellung der 0 (1,m x immer ungleich 0) Daher Sonderfälle e=0 und m 0 Zahl ist denomalisiert (0,M) e=0 und m=0 Darstellung der Zahl 0 e= und m 0 NaN (Not a Number) e= und m=0 Unendlich (Infinity, je nach Vorzeichen +/-) V Exponent e (8 Bit) Mantisse m (23 Bit, Nachkommateil)
7 Umrechnung IEEE 754 Dezimalzahl Mantisse und Exponent in Dezimalzahlen umrechnen Damit folgende Formel benutzen g dezimal M v 23 edezimal 127 = ( 1) (1,0 + dezimal / 2 ) 2 Beispiel: v= e= m= = ( 1) (1,0 + 2 / 2 ) 2 g dezimal 2 1 = 1 (1 + 2 ) 2 = 1,25 * 2 = 2,5 19 Dezimalzahl IEEE 754 (am Bsp. für 14,1) 1. Dezimalzahl in Festkommabinärzahl umrechnen (mit 23 Binärstellen hinter erster 1) 1110, Verschiebe Komma um n Stellen nach, sodass Zahl die Form 1, bekommt 1, n=3 3. Schreibe das Vorzeichenbit (1 falls negativ, 0 sonst) v=0 4. Rechne e=n+127 und schreibe binäre Darstellung von e 3+127=130 e= Schreibe m (Bitfolge hinter dem Komma aus Schritt 2) m= Dezimalzahl IEEE 754 (am Bsp. für 14,1) Zwischenergebnis v=0 e= m= Darstellung nach IEEE 754 Ergebnis Wirklichkeit ( komplizierte Rundungsregeln, ignorieren wir) 21
8 Von-Neumann-Architektur: Komponenten Auch: ALU (Arithmetic Logic Unit) Addition, etc Steuert Programmfluss Sagt Rechenwerk was zu tun ist. Verbindet Daten (Quelle und Ziel) mit ALU Steuert Übertragung (zur Ein- und Ausgabe) von Daten Interaktion mit Peripherie: Lochstreifenleser, Bildschirm, Keyboard, Speichert Daten und Programm (RAM) 22 Central Processing Unit (CPU) Agiert in Takten Gegeben durch Taktfrequenz Hat interne Speicher: Register Arbeitet in vier Schritten 1. Fetch Befehl und Daten aus Speicher holen CPU Steuerwerk Befehls-/Register-Speicher Programmzähler Befehlsdekoder steuert Rechenwerk (Rechen-)Registerspeicher Rechenschaltungen 2. Decode Befehl decodieren und Steuersignal an das Rechenwerk (ALU) anlegen 3. Execute Berechnung ausführen 4. Store Ergebnis in Speicher schreiben 23 Algorithmen Ausgangspunkt: Spezifikation eines zu lösenden Problems Algorithmus: Handlungsvorschrift zur Lösung des Problems Keine Kenntnis des Problems mehr notwendig Viele Algorithmen für ein Problem möglich Unterscheiden sich möglicherweise in der Effizienz Programmiersprachen: Aufschreiben von Algorithmen sodass ein Computer sie versteht Compiler übersetzen von Programmier- in Maschinensprache Security - 04 Cryptology 24
9 Algorithmen Erforderliche Sprachmerkmale Elementare Rechenoperationen (Addition, Subtraktion, ) Sequenz (Hintereinander-Ausführung) Bedingte Ausführung if switch Wiederholungsanweisung while do while for 25 Eigenschaften von Algorithmen Algorithmen kann man nach verschiedenen Eigenschaften beurteilen Terminierend Vollständigkeit Determiniert Deterministisch Effizienz Security - 04 Cryptology 26 Programmiersprachen-Paradigmen Eine Programmiersprache dient dem Aufschreiben von Algorithmen Ein Compiler übersetzt in Maschinensprache Die Art und Weise des Aufschreibens unterscheidet sich je nach Programmiersprache sehr deutlich Verschiedene Paradigmen existieren Bisher: Imperative Programmierung Security - 04 Cryptology 27
10 Unterschiedliche Sprachenkonzepte Imperative Programmiersprachen Grundprinzip: Folge von Variablenzuweisungen Wesentlich: Prozedurale Programmierung Beispiele: Algol, Fortran, Cobol, Pascal, C, Basic Spezialfall: Objektorientierte Programmierung Grundprinzip: Interaktionen zwischen Objekten Beispiele: SmallTalk, Java, C++ Funktionale Programmiersprachen Grundprinzip: Term-Ersetzung Beispiele: Lisp, HOPE, Miranda, SML, Haskell Logikbasierte Programmiersprachen Grundprinzip: Prädikatenlogik Beispiel: Prolog 28 Prozedurale Programmierung Zerlegung von Programmen in kleinere, wiederverwendbare Einheiten sog. Prozeduren Vorteile Kapselung einzelner Funktionalitäten Monolithisches Programm Bessere Wiederverwendbarkeit Lesbarerer Code Was tut er? (z.b. Zeichen zählen) statt Wie tut er es? (die ganzen Instruktionen) Fehlerbehebung an einer Stelle 29 Prozedur (auch: Funktion) Eingabeparameter Übergabe von Werten an die Funktion Definiert als Menge von Variablen mit bestimmtem Datentyp Rückgabe Wert mit einem bestimmten Datentyp Spezieller Datentyp für keine Rückgabe: void Beispiele für Deklarationen (sog. Signatur) void main(string[] args); int zaehleleerzeichen(char[] text); char[] rueckwaerts(char[] text); boolean istleerzeichen(char zeichen); boolean istkontogedeckt(int konto, int blz); Eingabewerte Prozedur / Funktion (Black Box) Ausgabewert 30
11 Funktionale Programmierung Vereinfacht dargestellt ist funktionale wie prozedural ohne globale Variablen Denkweise ist sehr wichtig für gut testbare und wartbare Programme Security - 04 Cryptology 31 Definition: Objekt Repräsentation eines Gegenstandes/Sachverhalts der realen Welt oder eines rein gedanklichen Konzepts Gekennzeichnet durch Eindeutige Identität (Unterscheidung von anderen Objekten) (Dieser Punkt vs. der andere Punkt) Zustand (in Form von Attributen) (also z.b. x- und y-wert) Methoden (bisher: Funktionen bzw. Prozeduren) (Manipulation des Zustands; definiert das Verhalten) (Beispiel: verschiebe und rotiere) 32 Beispiel: Objekt Punkt Besteht aus Zustand (Attributen) und Verhalten (Methoden) Zustand eines Punktes Definiert durch aktuelle x- und y- Werte Punkt Attribute: - double x = 1; - double y = 3; Methoden: - void setze(double x, double y); - void verschiebe(double dx, double dy); - void rotiere(double radians); Verhalten eines Punktes Definiert durch seine Methoden z.b. Setzen der x- und y-werte, verschieben, rotieren Security - 04 Cryptology 33
12 Methoden Können Zustand eines Objektes verändern Also die Werte der Attribute verändern Beispielsweise verändert die Methode rotieren die Werte der Attribute x und y Natürlich können auch Methoden wie Funktionen Parameter haben Punkt Attribute: - double x; - double y; Methoden: - void setze(double x, double y); - void verschiebe(double dx, double dy); - void rotiere(double radians); Security - 04 Cryptology 34 Objekte und Klassen Muss jedes Objekt immer neu implementiert werden? Nein, man fasst ähnliche Objekte zu einer Klasse zusammen Klasse: Abstrakte Definition der Attribute und Methoden einer Menge ähnlicher Objekte Objekte Klasse Punkt X 2 y 2 Attribute: - double x; - double y; X 1 y 1 X 3 y 3 Methoden: - voidsetze(double x, double y); - voidverschiebe(double dx, double dy); - voidrotiere(double radians); Security - 04 Cryptology 35 Instanzen Anstelle von Objekten spricht man oft von Instanzen Instanzen sind Realisierungen einer Klasse Instanzen existieren im Arbeitsspeicher Klassen sind nur abstrakte Definitionen Beispiele Punkte vs. Dieser Punkt Lampen vs. Diese Wohnzimmerlampe Auto vs. Mein 3er BMW Mensch vs. Ich Instanzen der Klasse Punkt X 1 X 2 X 3 y 1 y 2 y 3 Instanzen der Klasse Lampe Instanzen der Klasse Mensch Security - 04 Cryptology 36
13 Gesamtbeispiel Es werden 2 Instanzen der Klasse Punkt erzeugt (p1 und p2) Es werden Werte an p1.x, p1.y, p2.x und p2.y zugewiesen und dann ausgegeben Auf dem Objekt p1 werden rotiere und verschiebe aufgerufen Alle Werte werden erneut ausgegeben Es haben sich nur die Attribute von p1 geändert 37 Überladen von Methoden Mehrere Methoden gleichen Namens in einer Klasse erlaubt Prinzip der sog. Überladung eines Identifiers / Namens Gleicher Rückgabetyp, aber unterschiedliche Parameter Beispiel void gebeaus(int i); void gebeaus(string s); void gebeaus(double d); gebeaus(1); //Aufruf von void gebeaus(int i); gebeaus( Hallo ); //Aufruf von void gebeaus(string s); gebeaus(2.098); //Aufruf von void gebeaus(double d); 38 Konstruktoren: Umsetzung in Java Konstruktoren: Methoden mit speziellem Namen und Rückgabetyp Name der Methode: Klassenname Rückgabetyp: Keiner, nicht einmal void Konstruktor sollte alle Attribute initialisieren (guter Stil) Syntax: Klassenname(Typ1 Name1, Typ2 Name2, ) { } Beispiel: Punkt(double x, double y) {} Eine Klasse kann mehrere Konstruktoren haben Gleiches Prinzip wie Überladen von Methoden Ein Konstruktor kann als erstes anderen Konstruktor aufrufen Syntax: this(parameter); 39
14 Statische Methoden und Attribute Schlüsselwort static (unabhängig von Klasseninstanzen) Es gibt keine this -Referenz (keine Instanz verfügbar) Statische Elemente können nur andere statische Elemente verwenden Aufruf anderer statischer Methoden oder verwenden statischer Variablen Statische Methoden Definition: static void statischemethode() {} Verwendung: Klassenname.methodenname(Parameter) Statische Attribute Definition: static int statischesattribut; Verwendung: Klassenname.attributname; 40 Packages Es ist üblich, Klassen in Packages zu gruppieren Bessere Übersichtlichkeit Vorbeugung von Namenskonflikten Zusammengehörige Klassen kennzeichnen Analogie Klassennamen sind vergleichbar mit einem Vornamen Package-Name entspräche dann dem Familiennamen Package-Namen: Gleiche Einschränkungen wie Identifier z.b. kein - erlaubt Konvention: Kleinschreibung (also mathe statt Mathe ) 41 Vererbung Man versucht, zu ähnlichen Klassen eine gemeinsame Oberklasse zu finden Fasst Ähnlichkeiten zusammen In Form von Attributen, Verhalten (Methoden), Beziehungen zu anderen Klassen Ergänzt in den Unterklassen lediglich die Unterschiede Ergänzende Attribute, Methoden, Beziehungen zu anderen Klassen 42
15 Vererbung Gemeinsamkeiten ähnlicher Klassen werden zu einer Oberklasse zusammengefasst Gemeinsame Fahrzeug hersteller: String wechselintervall: int km_gefahren: int baujahr: int oelwechsel() Oberklasse Bus hersteller: String wechselintervall: int km_gefahren: int baujahr: int toilette: boolean oelwechsel() toiletteleeren() Gemeinsamkeiten PKW hersteller: String wechselintervall: int km_gefahren: int baujahr: int Bauart: String oelwechsel() cabriodach() : boolean 43 Vererbungshierarchie Vererbung kann auch über mehrere Hierarchiestufen erfolgen Vererbung von Attributen und Methoden erfolgt transitiv Gegenstand Beispiel Fahrzeug erbt alles von Gegenstand Bus und PKW erben alles von Fahrzeug und damit auch alles von Gegenstand Fahrzeug Umsetzung in Java class Fahrzeug extends Gegenstand {} class Bus extends Fahrzeug {} class PKW extends Fahrzeug {} Bus PKW 44 Vererbung in Java In Java gibt es eine Oberklasse aller Klassen java.lang.object Wenn keine Oberklasse angegeben ist, wird Object automatisch zur Oberklasse Konsequenz: java.lang.object ist Oberklasse jeder Klasse Vielleicht nicht direkt, aber irgendwann auf jeden Fall Object Gegenstand Fahrzeug Dies ist nicht in allen Programmiersprachen so z.b. nicht in C++ Bus PKW Security - 04 Cryptology 45
16 Vererbung und Instanzen Von jeder Klasse können Instanzen erzeugt werden Diese können ganz normal verwendet werden Beispiele Fahrzeug f = new Fahrzeug(); f.oelwechsel(); Bus b = new Bus(); b.oelwechsel(); b.toiletteleeren(); Fahrzeug PKW p = new PKW(); p.oelwechsel(); p.cabriodach(); Bus PKW Security - 04 Cryptology 46 Vererbung und Instanzen Merkregel: Vererbungsbeziehung drückt eine ist ein Beziehung aus Beispiel: Ein PKW ist ein Fahrzeug Aber: Nicht jedes Fahrzeug ist ein PKW Variablen der Basisklasse können auf Referenzen der Subklassen verweisen Fahrzeug f = new Fahrzeug(); Fahrzeug f1 = new PKW(); Fahrzeug f2 = new Bus(); Bus b = new Bus(); Fahrzeug f3 = b; Fahrzeug Aber nicht umgekehrt Bus b = new Fahrzeug(); //Fehler Bus PKW Security - 04 Cryptology 47 Schlüsselwort super Jede Instanz hat eine Referenz auf Ober-Instanz z.b. um Attribute und Methoden explizit zu referenzieren Diese heißt super super Gegenstand Erfüllt ähnlichen Zweck zum Zugriff auf Elemente der Oberinstanz wie this für die aktuelle Instanz Kann nicht wie this ausgegeben werden (zeigt auf dieselbe Instanz) super Fahrzeug Bus PKW super Security - 04 Cryptology 48
17 Aufruf des super -Konstruktors Aufruf des Konstruktors der Oberklasse Nur aus Konstruktor möglich Muss erster Aufruf im Konstruktor sein Syntax: super( evtl. Parameter ) class Fahrzeug { Fahrzeug(int i) { /* Code des Konstruktors */ } } class Bus extends Fahrzeug { Bus() { super(1); } } Security - 04 Cryptology 49 Aufruf der Super-Methode Ruft Methode der Oberklasse auf Nur möglich im Konstruktor und in Methoden Ohne super würde die Methode der aktuellen Klasse aufgerufen Syntax super.methodenname( evtl. Parameter ) Security - 04 Cryptology 50 Modifier Klasse Package Unterklasse Überall public (komisch) protected* Keine Angabe: package private private* *) Nicht für Klassen (nur für Attribute, Konstruktoren und Methoden) 51
18 Polymorphismus Methoden von Oberklassen können in Unterklassen redefiniert werden Überladen (Overloading) Methode mit gleichem Namen und unterschiedlichen Parametern Rückgabetyp bleibt gleich Überschreiben (Overriding) Polymorphismus Gleiche Signatur einer Methode in einer Unterklasse Nach außen gleiches Interface, aber anderes Verhalten 52 Klasse Obst Methode gibt Fehler (-1) zurück Das abstrakte Konzept Obst kostet ja nichts Public, damit sie von außen aufgerufen werden kann Security - 04 Cryptology 53 Klasse Apfel Attribute Gewicht double gewichtinkg; Preis pro kg double preisprokg; Methoden double getpreisineuro(); Berechnet Preis basierend auf Gewicht und Gewicht pro kg Apfel(double gewichtinkg, double preisprokg) Konstruktor mit gewichtinkg und preisprokg Initialisiert die Attribute 54
19 Abstrakte Klassen und Methoden Man kann Klassen und Methoden als abstrakt kennzeichnen Bedeutung: Von abstrakten Klassen können keine Instanzen erzeugt werden Ist mindestens eine Methode einer Klasse abstrakt, so ist auch die Klasse abstrakt Security - 04 Cryptology 55 Beispiel: Abstrakte Klasse Obst Abstrakte Klassen: Keyword abstract Syntax: abstract class XXX {} Beispiel: Security - 04 Cryptology 56 Erzwingen der Implementierung von Methoden Wie kann man nun erzwingen, dass in Unterklassen bestimmte Methoden implementiert werden? Lösung: durch abstrakte Methoden public abstract double getpreisineuro(); Nur Signatur (wg. ; am Ende) aber keine Implementierung Enthält eine Klasse mindestens eine abstrakte Methode, so muss die Klasse auch abstrakt sein D.h. es muss abstract class Obst heißen Existenz mindestens einer abstrakten Methode: es können von dieser Klasse auch keine Instanzen erzeugt werden Security - 04 Cryptology 57
20 Interfaces Können Klassen auch von mehreren Oberklassen erben? Sogenannte Mehrfachvererbung Prinzipiell ja (z.b. in C++), in Java jedoch nicht Es können Konflikte entstehen, deren Auflösung kompliziert sein kann Java bietet ähnliche Funktionalität über einen Trick Neben echten Oberklassen gibt es sog. Interfaces Ein Interface enthält lediglich Methodensignaturen D.h. keine Methodenimplementierung / kein Code Vergleichbar mit Klassen, die nur abstrakte Methoden enthalten 58 Abstrakte Klasse vs. Interface Abstrakte Klasse abstract class Obst { public abstract double getpreisineuro(); } Interface interface Obst { double getpreisineuro(); } Abstract wird implizit für Klasse und Methoden angenommen und muss daher nicht explizit auftauchen Methoden eines Interfaces sind immer public 59 Abstrakte Klasse vs. Interface Abstrakte Klassen können auch normale Methoden enthalten (mit Implementierung) abstract class Obst { public void gebeaus() { } OK public abstract double getpreisineuro(); } Bei Interfaces ist dies nicht erlaubt interface Obst { void gebeaus() { } nicht möglich double getpreisineuro(); } 60
21 Interfaces: Type Identification Woran erkennt man Typ einer Instanz? Obstbeispiel: Woran erkennt man, dass ein Objekt das Interface Herkunftsland implementiert? Java bietet Operator instanceof Syntax: instanz instanceof Klasse Liefert einen Booleschen Wert zurück Sogenannte Run-time type identification Man kann zur Laufzeit des Programms feststellen, von welchem Typ eine Instanz ist 61 Finalisieren: Methoden, Klassen, Attribute Überschreiben von Methoden in Unterklassen verhindern Deklarieren von Methoden als final final void myfinalmethod() { } Verhindern, dass Unterklassen zu einer Klasse gebildet werden final class MyFinalClass { } Alle Methoden dieser Klasse sind dann ebenfalls final Attribute können ebenfalls final sein Wert kann nur einmal gesetzt werden (Deklaration oder Konstruktor) final int myfinalint = 7; 62 Unified Modeling Language (UML) Standard zur graphischen Modellierung Spezifikation, Konstruktion und Dokumentation von Software Vielzahl verschiedener Diagramme Entwickelt von der Object Management Group (OMG) Standardisiert von OMG und ISO (ISO/IEC 19501, Version 2.1.2) Bildquelle:
22 Modellierung einer Klasse in UML Klasse ohne Attribute, Methoden, etc. Klasse mit einem Attribut Klasse mit einer Methode Klasse mit einem Attribut und einer Methode Security - 00 Layout Master 64 Zugriffssteuerung (Methoden & Attribute) + für public # für protected - für private ~ ~ für package private Nur in wenigen Programmiersprachen verfügbar (Java, C#) Security - 00 Layout Master 65 Modellierung von Interfaces in UML Interfaces markiert durch <<interface>> Security - 00 Layout Master 66
23 Modellierung einer Klasse in UML Statische Elemente Markiert durch Unterstreichung Abstrakte Elemente Markiert durch kursive Schrift Security - 00 Layout Master 67 Vererbung Security - 00 Layout Master 68 Vererbung Vererbung + Implementieren von Interfaces Security - 00 Layout Master 69
24 Sequenzdiagramm - Bausteine Grafische Darstellung von Interaktionen Beschreibt Austausch von Nachrichten zwischen Ausprägungen Also z.b. Methodenaufrufe zwischen Instanzen Beschreibt eine mögliche Interaktion, nicht alle Interaktionen müssen so ablaufen Security - 00 Layout Master 70 Objektdiagramm Dient zur Darstellung des Programmzustands Notation variablenname: Klasse Beispiel attributname = wert p : Person name = "Walter" geburtsdatum = " " 71 Aktivitätsdiagramm Stellt eine bestimmte Sicht auf dynamische Aspekte eines modellierten Systems dar Es wird oft der Ablauf eines Anwendungsfalls des Systems modelliert Zeigt Zusammenhänge verschiedener Aktionen auf und stellt die Kontroll- und Datenflüsse dar Beispiel: Spaghetti kochen Security - 00 Layout Master 72
25 Komponentendiagramm Darstellung umfasst Komponenten und deren Schnittstellen Stellt Abhängigkeiten zwischen Komponenten dar Zeigt, wie Komponenten miteinander verbunden sind 73
Vorlesung Programmieren. Hauptaufgabe des Programmierers. Maschinensprache Beispiel für x86 PCs. Zusammenfassung
Vorlesung Programmieren Zusammenfassung Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Hauptaufgabe des Programmierers Der Maschine beibiegen,
MehrVorlesung Programmieren
Vorlesung Programmieren Zusammenfassung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Hauptaufgabe des Programmierers Der Maschine
MehrVorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus
Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:
MehrVorlesung Programmieren
Vorlesung Programmieren Programmierparadigmen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Programmiersprachen-Paradigmen Eine Programmiersprache
MehrVorlesung Programmieren. Programmiersprachen-Paradigmen. Programmierparadigmen. Eine Programmiersprache dient dem Aufschreiben von Algorithmen
Vorlesung Programmieren Programmierparadigmen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Programmiersprachen-Paradigmen Eine Programmiersprache
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
Mehr09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)
Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)
MehrVorlesung Programmieren
Vorlesung Programmieren Zahlendarstellung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Agenda Zahlendarstellung Oder: wie rechnen
MehrProgrammierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.
Programmierkurs Java Vererbung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Ähnlichkeiten zwischen Klassen? Beispiel: Klassen Auto
MehrÜbung Programmieren - Zahlendarstellung, SSH, SCP, Shellskripte -
Übung Programmieren - Zahlendarstellung, SSH, SCP, Shellskripte - Sebastian Ebers Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/users/ebers Zahlendarstellung 201010? 16 2010
MehrProgrammierkurs C++ Konstruktor, Statische Methoden Namespaces
Programmierkurs C++ Konstruktor, Statische Methoden Namespaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
Mehr21.10.2013. Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?
Vorlesung Programmieren Zahlendarstellung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Agenda Zahlendarstellung Oder: wie rechnen
MehrVorlesung Programmieren
Vorlesung Programmieren Nachweihnachtliche Zusammenfassung und Wiederholung Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Themenüberblich
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
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 / 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
MehrProgrammieren. Warum Objektorientierung? Objektorientierung. Beispiele für Busobjekte der realen Welt
Institut für Telematik Universität zu Lübeck 2-2 Warum Objektorientierung? Kapitel 5: Java (5.7 und 5.8) Wintersemester 2008/2009 Prof. Dr. Christian Werner Problem: Wie stelle ich eine Beziehung zwischen
MehrProgrammierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
MehrProgrammieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner
Institut für Telematik Universität zu Lübeck Programmieren Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 8/9 Prof. Dr. Christian Werner 3- Überblick Typische Merkmale moderner Computer
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
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
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
MehrUniversität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer
Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.
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
MehrAlgorithmen und Datenstrukturen 06
31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung
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
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
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
Mehr1 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
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
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 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
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
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
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
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
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
MehrVererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
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
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
Mehr10. Programmierungs-Phase: Objektorientierung Software Engineering
10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
Mehr1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
Mehr7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik
7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
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
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
Mehr1 Aufgabe: Computer-Aufbau
Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe: Jahr: WS 2016/17 Übungsleiter: Alexander Syndikus Unterschrift: 1 Aufgabe: Computer-Aufbau
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
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
MehrBeispiele 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]
MehrHSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2
HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3
MehrUML (Unified Modelling Language) von Christian Bartl
UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...
MehrBeispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der
Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrZahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär
Zahlensysteme Menschen nutzen zur Angabe von Werten und zum Rechnen vorzugsweise das Dezimalsystem Beispiel 435 Fische aus dem Teich gefischt, d.h. 4 10 2 + 3 10 1 +5 10 0 Digitale Rechner speichern Daten
MehrAnwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrJava für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
MehrÜbersicht. Vorstellung des OO-Paradigmas
Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java
MehrJava I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
MehrInnere 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
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
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
MehrZahlensysteme und Kodes. Prof. Metzler
Zahlensysteme und Kodes 1 Zahlensysteme und Kodes Alle üblichen Zahlensysteme sind sogenannte Stellenwert-Systeme, bei denen jede Stelle innerhalb einer Zahl ein besonderer Vervielfachungsfaktor in Form
MehrVererbung, Polymorphismus
Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
Mehr7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure
7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG
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
Mehr4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:
4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende
MehrEinstieg 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
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
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
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
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
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
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
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
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrAlgorithmen und Datenstrukturen 07
5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrPolymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal
MehrInformationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit
Informationsmenge Maßeinheit: 1 Bit Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit 1 Byte Zusammenfassung von 8 Bit, kleinste Speichereinheit im Computer, liefert
MehrObjektorientierte Programmierung. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
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
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Mehr