Programmieren in Java
|
|
- Horst Huber
- vor 6 Jahren
- Abrufe
Transkript
1 Einführung in die Objektorientierung Objekt-Relationen
2 2 Klassen In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften eines Objektes die Fähigkeiten eines Objektes Ein konkretes Objekt wird als Instanz einer Klasse bezeichnet Die Instanz legt die konkreten Werte der Eigenschaften fest Auf Basis dieser Werte unterscheiden sich die Fähigkeiten der Instanz Jede Instanz hat ihr eigenes Set an Werten und nur die eigenen Werte können geändert werden Man kann demnach sagen: Jede Instanz ist zusammengesetzt aus Werten für die einzelnen Eigenschaften Damit ist jede Klasse eine zusammengesetzter Datentyp
3 3 Definition einer Klasse in Java public class BEZEICHNER { public class BEZEICHNER { Konvention: Klassennamen beginnen immer mit Großbuchstaben Instanzen werden mit new erzeugt new KLASSENBEZEICHNER ( ) new Computer() Instanz-Variablen KLASSENBEZEICHNER BEZEICHNER = new KLASSENBEZEICHNER ( ) Computer mycomputer = new Computer();
4 4 Objekt-Attribute Ein Attribut ist eine Variable, dessen Scope die Klasse ist: public class BEZEICHNER { SICHTBARKEIT DATENTYP BEZEICHNER ; private String system; Default-Wert private String system = "Windows 8"; Zugriff bei geigneter Sichtbarkeit über eine Instanz, immer über this Computer mycomputer = new Computer(); String currentsystem = mycomputer.system; private String system; public void on() { System.out.println("BOOT: " + this.system);
5 5 Objekt-Methoden public RÜCKGABETYP BEZEICHNER ( DATENTYP PARAM-, ) BEZEICHNER optional SATZ; BLOCK { return AUSDRUCK ; optional Die Methode kann nur per Deferenzierung einer Instanz aufgerufen werden public void dosomething() { Computer pc = new Computer(); pc.dosomething(); Getter/Setter: Kapseln von Lese- und Schreibeoperationen auf einem Attribut public int getram() { return this.ram; public void setram(int ram) { this.ram = ram;
6 6 Konstruktoren Ein Konstruktor ist eine spezielle Methode zur Initialisierung einer Instanz Per Default besitzt jede Klasse implizit den leeren Konstruktor Ein Konstruktor wird automatisch beim Erzeugen mit new aufgerufen public class BEZEICHNER { public BEZEICHNER ( ) { public Computer() { Computer dell = new Computer(); Ein Konstruktor muss so heißen wie seine Klasse Ein Konstruktor hat keinen Rückgabewert und damit also auch kein return Die Anzahl an Konstruktoren ist beliebig (Überladung von Methoden) public Computer (String processor, int ram, String system) { this.processor = processor; this.ram = ram; this.system = system; Computer dell = new Computer( "4 GHz AMD Quad Core", 8, "Windows 8" );
7 7 Der Weg zur Klasse Analyse Neue Klassen können eine erneute Analyse erfordern Klassen identifizieren Attribute identifizieren Attribute typisieren Typisierung kann zu neuen Klassen führen Neue Funktionalität kann zu neuen Attributen führen Attribute kapseln Konstruktoren festlegen Funktionalität identifizieren Methoden definieren
8 8 Von außen, von innen Der Scope einer Instanzvariablen legt die Zugriffsberechtigungen auf Methoden und Attribute der Instanz fest public class Main { public static void main(string[] args) { Computer pc = new Computer( "4 GHz AMD Quad Core" ); private String processor; public Computer (String processor) { this.processor = processor; String temp = pc.system; String temp2 = pc.getsystem(); Der Scope von pc ist die Methode main, deren Scope die Klasse Main Das Attribute processor wurde als private deklariert Es kann daher nur innerhalb der Klasse Computer dereferenziert werden Die Zuweisung von außen (temp) ist damit nicht möglich Die Methode getprocessor ist public Sie kann von überall also auch von außen (main) aufgerufen werden Die Zuweisung temp2 ist damit erlaubt public String getprocessor() { return this.processor;
9 9 Packages Packages dienen zur Strukturierung von Klassen Computer.java package BEZEICHNER ; package vorlesung7; public class KLASSEN-BEZEICHNER { Ein Package-Name muss die Ordnerstruktur der Sourcen wiederspiegeln Jedes neue Verzeichnis wird dabei mit einem Punkt getrennt In Netbeans ist das Root-Verzeichnis immer src Main.java package wwu.ziv.java.vorlesung7; public class Main {
10 0 Packages (II) Der Scope einer Klasse ist das Package, in dem sie definiert wurde In einem Package kann es keine zwei Klassen mit gleichem Namen geben In verschiedenen Packages kann es durchaus gleichnamige Klassen geben In einem Package werden meist Klassen mit gleichen Aufgaben zusammen Klassisches Beispiel: Model-View-Controller Model: Klassen zur Datenrepräsentation View: Klassen zur Darstellung der Model-Instanzen Controller: Instanz zur Vermittlung zwischen Model und View package wwu.ziv.java.demo.model; package wwu.ziv.java.demo.view; public class ComputerView { package wwu.ziv.java.demo.ctrl; public class Controller {
11 Packages (III) Der Package-Name wird zum unmittelbaren Teil des Klassennamens Um eine Klasse aus einem anderen Paket nutzen zu können, muss entweder der komplette Name angegeben werden static String readln() { System.out.println("HEAP => "); return new java.util.scanner(system.in).nextline(); oder die Klasse importiert werden Vorlesung 7 Folie 23 package BEZEICHNER ; package wwu.ziv.java.demo; import PAKETNAME ; import java.util.scanner; import PAKETNAME ; import ; KLASSEN public class Demo { static String readln() { System.out.println("HEAP => "); return new Scanner(System.in).nextLine(); Nach einem Import muss der Paketname nicht mehr angegeben werden
12 2 Aufgabe Aufgabe : Main-Klasse inklusive Package-Name direkt angeben Rest: Siehe Source-Code
13 3 Aufgabe (II) Aufgabe 2: Identifizieren und Definieren Sie weitere Klassen auf Basis der Komponenten eines Computers RamModule: Klasse zur Repräsentation eines RAM-Riegels Typ: Speicher-Art (DDR2, DDR3, ) Größe in GB RamModule type: String, readonly size: int, readonly Attribute RamModule(String type, int size) Konstruktoren gettype(): String getsize(): int Methoden Readonly: Nur Getter-Methode wird angeboten, so dass die Werte nie von außen geändert werden können
14 4 Aufgabe (III) Harddrive: Klasse zur Repräsentieren einer Festplatte Größe in GB size: int, readonly Harddrive files: File[] Harddrive Harddrive(int size) getsize(): int save(string name, String content): void delete(string name): void read(string name): void Harddrive(int size) getsize(): int save(string name, String content): void delete(string name): void read(string name): void Funktionalität: Festplatte soll Dateien enthalten Neue Klasse: File Dateien haben einen Namen und Inhalt Dateiname und Inhalt sind vom Typ String Dateien können gespeichert, gelesen und gelöscht werden name: String content: String File File (String name, String content) getname(): String setname(string name): void getcontent(): String setcontent(string content): void
15 5 Aufrüsten Datentypen RamModule und Harddrive in die Computerklasse einbauen processor: String ram: int hd: int device: String connectors: String[] soundcard: String gfxcard: String system: String Computer Computer( String processor, int ram, String system ) getram(): int setram(int ram): void getharddrive(): int setharddrive(int hd): void processor: String ram: RamModule hd: Harddrive device: String connectors: String[] soundcard: String gfxcard: String system: String Computer Computer( String processor, RamModule ram, String system ) getram(): RamModule setram(rammodule ram): void getharddrive(): Harddrive setharddrive(harddrive hd): void RamModule ram = new RamModule("DDR3", 8); Harddrive harddrive = new Harddrive(500); Computer dell = new Computer("4 GHz AMD Quad Core", ram, "Windows 8"); dell.setharddrive(harddrive);
16 6 Aufrüsten (II) Achtung: Die Parameter werden per Referenz übergeben! RamModule ram = new RamModule("DDR3", 8); Harddrive harddrive = new Harddrive(500); Computer dell = new Computer("4 GHz AMD Quad Core", ram, "Windows 8"); dell.setharddrive(harddrive); Computer imac = new Computer("4 GHz AMD Quad Core", ram, "Windows 8"); imac.setharddrive(harddrive); dell.getharddrive().save("test.txt", "This is a test"); System.err.println( imac.getharddrive().read("test.txt") ); This is a test So haben dell und imac die gleichen Instanzen für ram und hardrive Änderungen über getharddrive von dell sind damit Änderungen an imac Die Variablen ram und harddrive müssen vor der Initialisierung von imac neu zugewiesen werden Oder alternativ inline erzeugen : Computer imac = new Computer("4 GHz AMD Quad Core", new RamModule("DDR3", 4), "Windows 8"); imac.setharddrive(new Harddrive(2500));
17 7 Klassendiagramm Graph der während der Analyse eines Problems erstellt wird Identifiziert alle Klasse und deren Beziehungen Identifiziert Beziehungs-Attribute und deren Kardinalität Klasse RamModule Connector File 2 4 n Device Soundcard Computer Harddrive 2 files: File[] ram: RamModule[] Beziehung connectors: Connector[] harddrive: Harddrive Kardinalität gfxcard: GraphicsCard soundcard: Soundcard device: Device[] GraphicsCard
18 8 Aggregation/Komposition Man spricht von der Aggregation zweier Objekte, wenn es eine Verbindung zwischen den Objekten gibt, beide aber auch alleine existieren können Computer ram: RamModule Harddrive files: File[] Man spricht von der Komposition zweier Objekte, wenn es eine Verbindung zwischen den Objekten gibt, eines der Objekte allerdings nur als Teil des anderen existieren kann Harddrive files: File[] File name: String content: String
19 9 Mehrfach-Beziehungen Das Beispiel Harddrive File zeigt: eine Beziehung muss nicht : sein Jede Festplatte kann mehrere Dateien enthalten, aber eine Datei ist immer nur auf einer Festplatte gespeichert Harddrive files: File[] n File name: String content: String Beziehungen: : Eindeutige Beziehung auf beiden Seiten :n Eindeutig nur auf einer Seite, Anzahl auf anderer Seite beliebig n:m Anzahl beidseitig beliebig Eine Mehrfachbeziehung bedeutet immer, dass die inkludierende Seite (oben: harddrive) ein Attribut vorweist, dass eine Gruppierung (aktuell: Array) von Objekten referenziert
20 20 Mehrfach-Beziehungen Im Harddrive File Beispiel referenziert Harddrive einen File-Array Die einzelnen File-Instanzen allerdings referenzieren umgekehrt nicht die Harddrive-Instanz, zu der sie gehören Es gibt also keine Möglichkeit über eine File-Instanz herauszufinden, auf welche Festplatte die Datei gespeichert wurde Ist eine solche Relation gewünscht, so notiert man an der -Seite der Beziehung einen Pfeil Harddrive files: File[] n File name: String content: String harddrive: Harddrive Pfeile symbolisieren im Beziehungsgraph, dass eine Instanz eine Referenz auf eine andere Instanz benötigt, es sich dabei aber weder um Kompositions oder Aggregations-Abhängigkeit handelt
21 2 Begrenzte Kardinalität Anders als zuvor sind nun maximal 2 RAM-Bausteine möglich Im Gegensatz zur Harddrive File Beziehung, muss bei den RAM- Bausteinen also überprüft werden, ob die maximal Anzahl erreicht wurde Die Überprüfung sollte in der Setter-Methode zu ram durchgeführt werden private RamModule[] ram; public void setram(rammodule[] ram) { if (ram.length > 2) { System.err.println("..."); return ; this.ram = ram; private int maxquantityofram = 2; private RamModule[] ram; public void setram(rammodule[] ram) { if (ram.length > maxquantityofram) { System.err.println("..."); return ; this.ram = ram; In der Regel ist es ungünstig solche Grenzen in der Methode als konkretes Literal anzugeben ( Hardkodierung ) Vielleicht werden die Grenzen noch wo anders benötigt ( Pflegeaufwand) Besser: Hilfs-Attribut definieren
22 22 Die Schlüsselwörter static und final Bei dem Hilfsattribut stellen sich zwei Fragen:. Ist es nötig, dass jede Instanz der Klasse dieses Attribut besitzt? 2. Ist der Wert konstant bzw. kann und soll der Wert änderbar sein? Zu : Angenommen, jeder Computer habe die gleiche Anzahl RAM-Slots Damit wäre es unnötig die Anzahl pro Computer zu speichern Einmalig für alle würde genügen Mit static lassen sich Attribute als Klassen-Attribute definieren SICHTBARKEIT static BEZEICHNER = AUSDRUCK ; private static int maxquantityofram = 2; optional Der Zugriff erfolgt per Dereferenzierung des Klassennamens KLASSENNAME. BEZEICHNER if (ram.length > Computer.maxQuantityOfRam)
23 23 Die Schlüsselwörter static und final Ein statisches Attribut wird von allen Instanzen der Klasse geteilt private static int maxquantityofram = 2; public void increaseramby(int newsize) { Computer.maxQuantityOfRam = newsize; Computer dell = new Computer(); Computer imac = new Computer(); dell.increaseramby(6); imac.setram(new RamModule[] {new RamModule(), new RamModule(), new RamModule()); Das statische Attribute wird über die Instanz dell geändert Zuweisung von RAM größer als der eigentlich definierte Maximalwert (2), zeigt, dass die Änderung von dell auch für imac gilt Nebenbei: Das Beispiel ist natürlich konstruiert Die Methode increaseramby würde man statisch definieren
24 24 Die Schlüsselwörter static und final Zu 2: Angenommen die Anzahl der Slots in einem Computer ist fest Mit private schützt man das Attribut vor Änderungen von außen Was aber, wenn man auch innerhalb von Computer eine Änderung verbieten möchte? Mit final können Attribute als konstant definiert werden Solche Attribute müssen und können nur einmal initialisiert werden Die Initialisierung muss entweder mit der Deklaration oder im Konstruktur geschehen SICHTBARKEIT final BEZEICHNER = AUSDRUCK ; optional private final int maxquantityofram = 2; private final int maxquantityofram; public Computer () { maxquantityofram = 2;
25 25 Der statische Konstruktor Die Modifikatoren static und final können kombiniert benutzt werden SICHTBARKEIT static final BEZEICHNER = AUSDRUCK ; optional Da das Attribut aufgrund von static zur Klasse gehört, kann es nicht innerhalb eines Konstruktors initialisiert werden Der Konstruktor ist dazu da eine konkrete Instanz zu initialisieren und ist damit Instanz-spezifisich Es bleibt, die direkte Initialisierung oder der statische Konstruktor public class BEZEICHNER { static { private static final int maxquantityofram; static { maxquantityofram = 2;
26 26 Aufgabe Implementieren Sie die bereits identifiziert aber noch nicht geschriebenen Klassen des Klassendiagramms: Falls nicht schon geschehen: Identifizieren sie zunächst sinnvolle Attribute für die einzelnen Klassen Typisieren Sie diese und definieren Sie sinnvolle Konstruktoren RamModule Connector File 2 4 n Device Computer Harddrive Soundcard GraphicsCard unimplementiert implementiert
Programmieren in Java
Einführung in die Objektorientierung (Teil 2) - Objekt-Relationen - Pakete 2 Wiederholung (Klassen) In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften
MehrProgrammieren in Java
Einführung in die Objektorientierung Klassen 2 Prozeduale Programmierung Bisher: Klassische prozeduale Programmierung Java ist allerdings eine objektorientierte Sprache Rein prozeduale Programmierung daher
MehrProgrammieren in Java
Einführung in die Objektorientierung Klassen & Objekte 2 Wiederholung (Arrays initialisieren) Statisch: BASISDATENTYP [] Bezeichner = { WERT, WERT, ; WERT DATENTYP int[] firstsevenfibonacci = {0, 1, 1,
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
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
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
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
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrProf. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
Mehr3. Klassen Statische Komponenten einer Klasse. Klassenvariablen
Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
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
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
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
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
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 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
MehrEinstieg 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
MehrKlassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:
Klassenvariablen Klassenmethoden Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit
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
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]
MehrKlassen als Datenstrukturen
Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
MehrKapitel 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
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:
Mehr3 Klassen, Attribute, Methoden
3 Klassen, Attribute, Methoden Jörn Loviscach Versionsstand: 10. April 2011, 10:25 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html
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?...
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
MehrProf. 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
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
MehrJava 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
MehrFelder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.
Felder Felder - Arrays Variable gleichen Types können in Feldern (array) zusammengefasst werden. Typ[] feldname; oder Typ feldname[]; dabei kann unter Benutzung des new-operators gleich die Dimension zugewiesen
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
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
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
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
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
MehrProgrammiertechnik Objektorientierung
Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche
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
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
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
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
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
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
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
MehrEinstieg in die Informatik mit Java
1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von
MehrC++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11
C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
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
MehrAufbau von Klassen. class punkt {...
Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
MehrGeschachtelte Klassen
Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
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
MehrFolienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4
Folienpaket 7 Themenschwerpunkte: Methoden in OOP 284 09/2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4 Eine Klasse entwerfen Eine Klasse enthält folgende Information: Name der Klasse (ist auch der
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Vorlesung 5. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Objektorientierte Sichtweise: Mit welchen Objekten habe ich es in einem Programm
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
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
MehrC++ - Objektorientierte Programmierung Vererbung
C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.
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)
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
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 -
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 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,
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrEinführung in die Programmierung für NF MI. Übung 07
Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare
Mehr12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell
Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 03: Wiederholung und Nutzereingaben Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Wiederholung Klassen, Objekte, Attribute und Methoden
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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
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
MehrÜbersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung
Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des
MehrObjekt-Orientierte Programmierung
Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt
MehrInformatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017
1 Informatik II Übung 6 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Klassen - Technisch 2 Prediscussion
MehrObjekt-Orientierte Programmierung
Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt
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
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 in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 8-1 Objektorientiertes Programmieren Die Programme, die bisher in diesem Kurs verwendet wurden, sind alle klein und überschaubar
MehrÜbung 1: Object Inspector
Übung 1: Object Inspector Es ist ein System zu entwickeln, mit dem man Objektstrukturen bezüglich ihrer Properties analysieren und dann in einem Tree Viewer (JTree) anzeigen und bearbeiten kann. Properties
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
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
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
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
MehrGeschachtelte Klassen
Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2
MehrKlassenvariablen, 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
MehrJava - Klassen und Objekte
Java - Klassen und Objekte Der Würfel hat 12 Kanten. Der Würfel ist grün eingefärbt. Die Kanten sind in schwarz gezeichnet. Der Würfel kann gedreht werden. Die Kantenfarbe und die Seitenfarbe kann verändert
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
MehrEinstieg in die Informatik mit Java
1 / 24 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Lokale Variablen 2 Lokale Variablen in Blocks 3 Lokale Variablen
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
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
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
MehrKonstruktoren, Packages und Scopes
Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Konstruktoren, Packages und Scopes Dipl. Inf. Manuel Götz Lehrstuhl für Angewandte
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
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
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner
Mehreinkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung
PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();
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
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
Mehr