Programmieren in Java

Größe: px
Ab Seite anzeigen:

Download "Programmieren in Java"

Transkript

1 Einführung in die Objektorientierung (Teil 2) - Pakete - Objekt-Relationen

2 2 Wiederholung (Strings) String ist in Java ein zusammengesetzter Datentyp Variablen vom Typ String sind demnach Pointer D.h. String-Werte müssen per new erzeugt werden: String Bezeichner = new String ( " STRING " ) ; String mystring = new String("Hello World"); Analog zu Arrays gibt es eine new-lose implizite Erzeugung: (Vorlesung 4, Folie 24) String Bezeichner = " STRING " ; String mystring = "Hello World"; String ist in Java der einzige nicht numerische und nicht primitive Datentyp für den der Operator + definiert ist: String hello = "Hello"; String world = "World"; System.out.println(hello + " " + world); Hello World Sobald ein Operand von Typ String ist, werden alle automatisch umgewandelt

3 3 Wiederholung (String-Vergleich) Zwei Strings vergleichen (equals) String string1 = "Hello World"; String string2 = "Hello World"; System.out.println(string1.equals(string2)); true Warum equals und nicht den bekannten ==-Operator? Der ==-Operator vergleicht die Referenz, auf die der Pointer zeigt und nicht den Wert, der an der referenzierten Speicherstelle liegt! String string3 = new String("Hello World"); String string4 = new String("Hello World"); System.out.println(string1.equals(string2)); System.out.println(string1 == string2); System.out.println(string3.equals(string4)); System.out.println(string3 == string4); true true true false Mit new erzeugt, wird auf jeden Fall neuer Speicherplatz angefordert Implizit erzeugt, wird nur Speicherplatz angefordert, wenn der String zuvor noch nie in genau gleicher Schreibweise benutzt wurde Die implizite Variante ist in jedem Fall vorzuziehen!

4 4 Wiederholung (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 ein neuer zusammengesetzter Datentyp

5 5 Wiederholung (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();

6 6 Wiederholung (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 geeigneter 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);

7 7 Wiederholung (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 on() { Computer pc = new Computer(); pc.on(); Getter/Setter: Kapseln von Lese- und Schreibeoperationen auf einem Attribut public int getram() { return this.ram; public void setram(int ram) { this.ram = ram;

8 8 Wiederholung (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" );

9 9 Wiederholung (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

10 10 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 temp1 = pc.system; String temp2 = pc.getsystem(); Der Scope von pc ist die Methode main, deren Scope die Klasse Main Das Attribut processor wurde als private deklariert Es kann daher nur innerhalb der Klasse Computer dereferenziert werden Die Zuweisung von außen (temp1) 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;

11 11 Packages (Pakete) Packages dienen zur Strukturierung von Klassen Computer.java package BEZEICHNER ; package vorlesung6; public class KLASSEN-BEZEICHNER { Ein Package-Name muss die Ordnerstruktur der Sourcen widerspiegeln Jedes neue Verzeichnis wird dabei mit einem Punkt getrennt In Netbeans ist das Root-Verzeichnis immer src Main.java package wwu.ziv.java.vorlesung6; public class Main {

12 12 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 zusammengefasst 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 {

13 13 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 public int berechnewert(int value, int faktor) { return java.lang.math.abs(value) * faktor; oder die Klasse importiert werden package BEZEICHNER ; package wwu.ziv.java.demo; import PAKETNAME ; import static java.lang.math.abs; import PAKETNAME ; import ; KLASSEN public class Demo { public int berechnewert(int value, int faktor) { return abs(value) * faktor; Nach einem Import muss der Paketname nicht mehr angegeben werden

14 14 Beispielprojekt mit Paketstruktur anlegen Beispiel: Main-Klasse inklusive Package-Name direkt angeben

15 15 Beispiel: Objektrelationen beim Computer I Beispiel: 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 ausgabe(): String gettype(): String getsize(): int Methoden Readonly: Nur Getter-Methode wird angeboten, so dass die Werte nie von außen geändert werden können

16 16 Beispiel: Objektrelationen beim Computer II Harddrive: Klasse zur Repräsentieren einer Festplatte Größe in GB size: int, readonly Harddrive size: int, readonly files: File[] Harddrive Harddrive(int size) getsize(): int Harddrive(int size) ausgabe(): String getsize(): int Funktionalität: Festplatte soll Dateien enthalten Neue Klasse: File Dateien haben einen Namen und Inhalt Dateiname und Inhalt sollen vom Typ String sein name: String content: String File File (String name, String content) getname(): String setname(string name): void getcontent(): String setcontent(string content): void

17 17 Beispiel: Objektrelationen beim Computer III 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(1500); Computer dell = new Computer("4 GHz AMD Quad Core", ram, "Windows 8"); dell.setharddrive(harddrive);

18 18 Beispiel: Objektrelationen beim Computer IV Achtung: Die Parameter werden per Referenz übergeben! RamModule ram = new RamModule("DDR3", 8); Harddrive harddrive = new Harddrive(1500); 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));

19 19 Klassendiagramm zum Computer-Beispiel Graph, der während der Analyse eines Problems erstellt wird Identifiziert alle Klasse und deren Beziehungen Identifiziert Beziehungs-Attribute und deren Kardinalität RamModule Connector File Beziehung 2 Device Computer Klasse Kardinalität 1 1 n 1 Harddrive Soundcard 1 GraphicsCard unimplementiert implementiert

20 20 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

21 21 Mehrfach-Beziehungen Das Beispiel Harddrive File zeigt: eine Beziehung muss nicht 1:1 sein Jede Festplatte kann mehrere Dateien enthalten, aber eine Datei ist immer nur auf einer Festplatte gespeichert Harddrive files: File[] 1 n Beziehungen: 1:1 Eindeutige Beziehung auf beiden Seiten 1: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 File name: String content: String

22 22 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 1-Seite der Beziehung einen Pfeil Harddrive files: File[] 1 n 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 File name: String content: String harddrive: Harddrive

23 23 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 maximale 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

24 24 Die Schlüsselwörter static und final Bei dem Hilfsattribut stellen sich zwei Fragen: 1. 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 1: 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)

25 25 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

26 26 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;

27 27 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 Instanzspezifisich Es bleibt, die direkte Initialisierung oder der statische Konstruktor public class BEZEICHNER { static { private static final int maxquantityofram; static { maxquantityofram = 2;

28 28 Aufgabe Aufgabe 1: Legen Sie ein neues Netbeans-Projekt mit dem Paketnamen wwu.ziv.java.aufgabe.schuhpaar und der Klasse Main an. Fügen Sie die Klasse Schuh analog aus der Aufgabe Schuh hinzu. Erstellen Sie die Klasse Schuhpaar: Die Klasse bekommt die Attribute linkerschuh und rechterschuh vom Typ Schuh hinzu. Schreiben Sie für beide Attribute eine setter-methode, die überprüft, ob es sich jeweils wirklich um einen linken bzw. rechten Schuh handelt. Der Default-Konstruktor setzt beide Schuh-Attribute auf null. Der Konstruktor Schuhpaar(Schuh links, Schuh rechts)setzt die Parameter in die Schuh-Attribute mit den setter-methoden. Verschieben Sie das Attribut Warennummer samt Funktionalität aus der Klasse Schuh in die Klasse Schuhpaar.

29 29 Aufgabe Weiter zu Aufgabe 1: Schreiben Sie die Methode ausgabe, welche die Attribute der Instanz ausgibt, sodass diese mit der unteren Konsolenausgabe übereinstimmt. Rufen Sie hierzu die ausgabe-methode von Schuh auf und passen diese ggf. an. Schreiben Sie die Methode istvollstaendig, die ein true als Rückgabe hat, falls beide Schuhe nicht null sind und der Aufruf von istgleich mit diesen Schuh auch true liefert, sonst false. Schreiben Sie die Methode ausgabevollstaendig, welche eine Konsolenausgabe zur Vollständigkeit ausgibt, sodass diese mit der unteren Konsolenausgabe übereinstimmt. Legen Sie in der Klasse Main die main-funktion mit 12 Instanzvariablen an, wobei 8 vom Klassentyp Schuh und 4 vom Typ Schuhpaar sein sollen. Schuhpaar 1 bekommt im Konstruktor Schuh 1 und Schuh 2 übergeben, Schuhpaar 2 die Schuhe 3 und 4 usw.

30 30 Aufgabe Weiter zu Aufgabe 1: Rufen Sie zu den Instanzen vom Typ Schuhpaar jeweils die Methode ausgabe und ausgabevollständig auf, sodass der Konsoleninhalt wie folgt aussieht:

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Objekt-Relationen 2 Klassen In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften eines Objektes die Fähigkeiten

Mehr

Programmieren in Java

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

Mehr

Programmieren in Java

Programmieren 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,

Mehr

Programmieren in Java

Programmieren 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

Mehr

Programmieren in Java

Programmieren 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

Mehr

Repetitorium Informatik (Java)

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

Mehr

1 Klassen und Objekte

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

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

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

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen 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

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - 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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Prof. W. Henrich Seite 1

Prof. 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

Mehr

Javakurs für Anfänger

Javakurs 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

Mehr

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen 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

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. 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.

Mehr

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

Objektorientierte 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

Mehr

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

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

Mehr

Javakurs 2013 Objektorientierung

Javakurs 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

Mehr

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

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

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

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

Institut 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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Java Einführung Methoden in Klassen

Java 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

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Felder - 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

Mehr

Programmieren in Java

Programmieren in Java Einführung in die (imperative) Programmierung: Arrays & Strings 2 Wiederholung (Methoden) MODIFIKATOREN optional RÜCKGABETYP BEZEICHNER ( DATENTYP PARAM-, ) BEZEICHNER optional { SATZ; BLOCK return AUSDRUCK

Mehr

Einstieg in die Informatik mit Java

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

Mehr

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

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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Klassen als Datenstrukturen

Klassen 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

Mehr

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

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

Mehr

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Klassenmethoden. 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

Mehr

Programmieren in Java

Programmieren 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

Mehr

Javakurs für Anfänger

Javakurs 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

Mehr

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

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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Objektorientierte Programmierung und Klassen

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

Mehr

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

FH 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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Vererbung, Polymorphie

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

Mehr

Objektorientierung (OO)

Objektorientierung (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

Mehr

Java Einführung Klassendefinitionen

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

Mehr

Fragen zur OOP in Java

Fragen 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?...

Mehr

Programmierstarthilfe 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 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

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

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

Mehr

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

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

Mehr

Einführung in die Programmierung für NF MI. Übung 07

Einfü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

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 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,

Mehr

Methoden und Wrapperklassen

Methoden 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)

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Folienpaket 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

Mehr

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

C++ 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

Mehr

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

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

Mehr

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

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

Mehr

3 Klassen, Attribute, Methoden

3 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

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich 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 -

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Java Datentypen und Variablen

Java Datentypen und Variablen Informatik 1 für Nebenfachstudierende Grundmodul Java Datentypen und Variablen Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

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

Prof. 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

Mehr

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

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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einfü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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1 Kapitel 12 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

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 3 2 Übersicht der heutigen Inhalte Pakete Beispiel zur Verdeckung Polymorphie Modifikatoren bei Klassenelementen 3 Zusammenhang

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

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

Mehr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell

11. 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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für

Mehr

Programmiertechnik Objektorientierung

Programmiertechnik 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

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Algorithmen und Datenstrukturen II

Algorithmen 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

Mehr

Java Einführung Methoden. Kapitel 6

Java 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

Mehr

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

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

Mehr

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen

Mehr

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

Kapitel 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

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java 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

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

Mehr

Programmierkurs Java

Programmierkurs 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

Mehr

Pakete Software Entwicklung 1

Pakete Software Entwicklung 1 Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Organisation von Klassen- und Interface-Deklaration Java-Programme bestehen aus Typdeklarationen, d.h. Klassen- und Interface-Deklarationen.

Mehr

Begriffe 1 (Wiederholung)

Begriffe 1 (Wiederholung) Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

Einführung in C. EDV1-04C-Einführung 1

Einführung in C. EDV1-04C-Einführung 1 Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags

Mehr

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

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

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Ü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

Mehr

Javakurs für Anfänger

Javakurs 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

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

AuD-Tafelübung T-B5b

AuD-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

Mehr

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

Methoden 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

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 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

Mehr

Einführung in das Programmieren Probeklausur Lösungen

Einfü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

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile

Mehr

Aufbau von Klassen. class punkt {...

Aufbau 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

Mehr