, 1 / Javakurs 2012 – Objektorientierung Objektorientierte Programmierung I This work is licensed under the Creative Commons Attribution-ShareAlike 3.0.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
der Universität Oldenburg
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Programmieren mit JAVA
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Modulare Programmierung
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Einführung in Java1 Einführung in JAVA.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sitzung 3: Klassen, Objekte, Arrays und Kontrollstrukturen
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Objektorientiertes Konstruieren
EPROG Tutorium #4 Philipp Effenberger
EPROG Tutorium #6 Philipp Effenberger
EPROG Tutorium #3 Philipp Effenberger
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Objektorientierte Programmierung mit JAVA. © Klasse Wie in C++ ist die Klasse das primäre Mittel um ein Entity abzubilden Die Eigenschaften.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Objektorientierung in Java Java-Kurs LE 5.
, 1 / Javakurs 2011 – Objektorientierung Objektorientierte Programmierung I This work is licensed under the Creative Commons Attribution-ShareAlike 3.0.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Vererbung.
„Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen.“
Hello World! Javakurs 2013 Arne Kappen
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Einführung in die Programmierung mit Java
Grundkurs Informatik 11-13
Grundkurs Informatik mit Java
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Definition Felder Konstruktor Methoden Beispiel
Implementieren von Klassen
Statische und Nichtstatische Methoden Properties / Eigenschaften
Grundkurs Informatik 11-13
 Präsentation transkript:

, 1 / Javakurs 2012 – Objektorientierung Objektorientierte Programmierung I This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. Armelle Vérité 8 März 2012 Technische Universität Berlin

, 2 / Bessere Teillösung Mittelmäßige Teillösung Objektorientierte Programmierung Motivation Teillösung ● Modularisierung ● Wartbarkeit ● Verringerung der Komplexität ● Schnittstellen ● Java ● Objekte

, 3 / Was macht einen Objekt aus? Inhalt Zustand Verhalten Identität Schnittstelle Objekt Erzeugung

, 4 / Was davon könnte kein Java Objekt sein? Objekte Eine Folge von Nullen und Einsen... Eine dreidimensionale Form... Eine Verbindung... Die Zahl 42...

, 5 / Antwort : alle könnten Objekte sein! Objekte Box Ein Objekt ist ein Objekt... Wenn es eine java Klasse gibt, die dieses Objekt erzeugt Man kann auch Eigene Java Klassen definieren

, 6 / Ein Objekt ist eine Instanz einer Klasse Instanziieren r2d2 Volum = 200 cm³ Farbe = blau megaKiste Volum = 450 cm³ Farbe = gelb x42 Volum = ? Farbe = ? class Box { public int volum; public String farbe; } Attribute Objektname Box x42 = new Box();

, 7 / Abstraktion Klassen Bin ich eine Instanz von Box? class Box { public int volum; public String farbe; }

, 8 / Arbeiten mit mehreren Klassen Klassen class Schuh { public Box verpackung ; public int modellNr; public static void main(String[] args) { System.out.println("I love new shoes"); } import java.awt.Color; class Box { public int volum; public Color farbe; } $ javac Schuh.java $ ls Box.class Box.java Schuh.class Schuh.java $ java Schuh

, 9 / Variablen vor dem Zugriff definieren Klassen public class Schuhladen { public Schuh[] sortiment; public String adresse; public String erzeugeRechnung(int i){ String Rechnung = adresse + sortiment[i].modellNr; return Rechnung; } public static void main(String[] args) { Schuhladen shop = new Schuhladen(); shop.printRechnung(42); } Exception in thread "main" java.lang.NullPointerException Fehler!

, 10 / Standard-Konstruktor Konstruktoren Box x42 = new Box(); import java.awt.Color; class Box { public int volum; public Color farbe; public Box() { farbe = Color.MAGENTA; } Erzeugung eines Objektes: Und was ist mit dem Volumen?

, 11 / Punktnotation Konstruktoren Box x42 = new Box(); x42.volum = 420; import java.awt.Color; class Box { public int volum; public Color farbe; public Box() { farbe = Color.MAGENTA; } Definieren von Schnittstellen mit dem Schlüsselwort public: Ich bin eine Schnittstelle

, 12 / Konstruktoren mit Parametern Konstruktoren Box Schuhkarton = new Box(630,Color.RED); import java.awt.Color; class Box { public int volum; public Color farbe; public Box(int volum, Color farbe) { this.volum = volum; this.farbe = farbe; } Erzeugung eines Objektes mit Parametern:

, 13 / Zusammenfassung Konstruktoren Konstruktoren Konstruktoren initialisieren Objekten Name = Klassenname Kein Angabe zu Rückgabewert Wird kein Konstruktor definiert, existiert ein impliziter Konstruktor ohne Parameter Mehrere Konstruktoren in einer Klasse möglich, wenn sie sich an die Parametern unterscheiden

, 14 / Zugriff auf public Attribute Sichtbarkeit Box schwarzesLoch = new Box(); SchwarzesLoch.volum = -42; import java.awt.Color; class Box { public int volum; public Color farbe; public Box() { farbe = Color.MAGENTA; } Wir verlassen uns darauf, dass alles gut gehen wird:

, 15 / Die Idee von Kapselung Kapselung Attribute Methoden M e t h o d e n M e t h o d e n

, 16 / import java.awt.Color; class Box { private Color farbe; private int volum; public int getVolum() { return volum; } public void setFarbe(Color farbe) { this.farbe = farbe; } public void paintBlue() { setFarbe(Color.CYAN); } } Getter und Setter Methoden Verhalten

, 17 / Frage Wir wollen einen Attribut der Klasse Box definieren, der angibt, wie viele Instanzen von Box existieren. Wie machen wir das?

, 18 / Klassenvariable = gehört zur Klasse selbst import java.awt.Color; class Box { private Color farbe; private int volum; private static int total = 0; public Box() { farbe = Color.MAGENTA; total ++; } public Box(Color farbe, int volum) { this.farbe = farbe; this.volum = volum; Box.total++; }

, 19 / Utilities sind oft static Methoden int wuerfel; wuerfel= (int)Math.round((Math.random()*5)+1); Math public static long round(double a) Returns the closest long to the argument. The result is rounded to an integer by adding 1/2, taking the floor of the result, and casting the result to type long. In other words, the result is equal to the value of the expression: (long)Math.floor(a + 0.5d) public static double random() Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Was ist casting ?

, 20 / Zusammenfassung static Klassen-Methoden nur Zugriff auf Klassenvariablen Können direkt auf Klasse aufgerufen werden Instanz-Methoden Zugriff auf Klassen- und Instanzvariablen erfordern Erstellung eines Objektes statische Methodennicht-statische Methoden

, 21 / Zusammenfassung Attribute speichern Zustände eines Objektes ● Konstanten mit Schlüsselwort final ● Format der Deklaration : – Sichtbarkeit (private, public) – Schlüsselwörter (final, static) – Typ (int, String, Box...) – Name ( klein & darf nicht mit einer Zahl beginnen) Methoden implementieren Verhalten eines Objektes ● Getter und Setter für private Attribute ● Format der Deklaration : – Sichtbarkeit (private, public) – Rückgabetyp (int, String, Box…) außer bei Konstruktoren – methodenName (ParameterTyp parameterName)

, 22 / Reference / value Identität int a = 0; int b = a; a++; System.out.println(a); System.out.println(b); Box a = new Box(100, Color.ROT); Box b = a; a.volum++; System.out.println(a.volum); System.out.println(b.volum); Ergebnis: a: 1 b: 0 Ergebnis: a.volum: 101 b.volum: 101 ( public volum wird angenommen)

, 23 / Referenzen Identität Referenz a Referenz b

, 24 / Referenzen Identität Referenz a Referenz b ) ) ) ) )

, 25 / Identität Referenzen Referenz a Referenz b

, 26 / Referenzen Identität Referenz a Referenz b ) ) ) ) )

, 27 / Referenzen Identität Referenz a Referenz b

, 28 / Häufige Compiletime- und Runtime-Fehler Häufige Fehler Box mystery; mystery.getFarbe(); mystery = null; mystery.paintBlue(); Box alias = mystery; alias.getVolum(); Box bonbons = new Box(); bonbons.paintBlue(); System.out.print(100 / bonbons.volum); Box geschenk = new Box(50, Color.ORANGE); geschenk.getVolum(); Box ueberraschung = geschenk; ueberraschung.setFarbe(Color.PINK); Compiletime Fehler Runtime Fehler

, 29 / Zur guten Letzt... Hinweis Merken: genau eine Klasse pro Datei Dateiname identisch mit Klassennamen Klassennamen groß, fängt mit Buchstabe an Fragen?