Modelle und Modellierung

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Objektorientierte Programmierung
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Einführung in Klassen, Objekte und in UML
Kritische Betrachtung
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Kapitel 4 Datenstrukturen
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Objektorientierte Programmierung mit Java unter BlueJ
Objektorientierte Programmierung mit Java unter BlueJ
Programmierung am WG mit Java oder VBA?
Java: Objektorientierte Programmierung
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Polymorphie (Vielgestaltigkeit)
Assoziationen (Beziehungen). Zwischen Objekten kann es eine Beziehung geben.
Polymorphie (Vielgestaltigkeit)
Einführung in die Programmierung mit Java
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Programmieren mit JAVA
Programmieren mit JAVA
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
Vererbung Spezialisierung von Klassen in JAVA möglich durch
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 Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung in die Programmierung Klassendefinition und Objekte
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
20:00.
„Küsse deine Freunde“ – FlexKom-App teilen
Programme dokumentieren mit JavaDoc
Entwurfs- und Implementationsdiagramme
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Symmetrische Blockchiffren DES – der Data Encryption Standard
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Java Programmierung.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Programmiervorkurs WS 2014 Referenzdatentypen
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
1 VeranstaltungThemaVortragende AINF-Lehrgang 2003 Titel: Grundlagen der Objektorientierten Programmierung Name: Gruppe Programmierung.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Einführung in die Programmierung mit Java
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Einführung in die Programmierung mit Java
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 9. Vorlesung WS 2001/2002.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Java Programme nur ein bisschen objektorientiert.
November 18 Informatik Kurse
 Präsentation transkript:

Modelle und Modellierung Wirkliche Welt: Autohaus Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Modell: Idealisierte Darstellung (Abbildung) der realen Welt zur Veranschaulichung bestimmter Sachverhalte/Eigenschaften/Prozesse, Vereinfachung der Realität Das Foto ist farbig, hat einen bestimmten Maßstab, wurde aus einer bestimmten Perspektive aufgenommen usw.: Ikonisches Modell (bildhaft) Funktion dieses Modells: Möglicherweise ein Foto für einen Bericht C.O.

Fortschreitende Abstraktion Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Verzicht auf Details (Farbinformation usw.): Die Darstellung wird „ungenauer“, allerdings bleiben der Standort und die Silhouette der Fahrzeuge erkennbar. C.O.

Analogmodell X X X X X X X X X X X X X X X Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen X X X X X X X X X X X X X X X Lageskizze der Stellplätze: Stark vereinfachte Karte, jedes abgestellte Fahrzeug wird zu einem „X“ („Analogie“, eine noch weiterer Abstraktion von der Wirklichkeit) C.O.

Eine weitere Betrachtungsweise Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Jedes Kfz ist individuell (Fahrzeugnummer). C.O.

Es gibt Gemeinsamkeiten Individuelles KFZ Individuelles KFZ Individuelles KFZ Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Überlegung: Was haben alle Fahrzeuge gemeinsam: Vier Räder, Lenkrad … „Abstraktes Fahrzeug“: Schablone, Bauplan für die realen Fahrzeuge C.O.

Die Vorstufe einer Klasse Kfz Hersteller: Text Typ: Text ……… Hubraum: Ganzzahl Farbe: Text ……. Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Schablone, nach diesem „Bauplan“ können (fast) unendlich viele Fahrzeuge gebaut werden. Allerdings benötigt dieser Plan exakte Angaben zu den Details des Fahrzeugs. So könnte der Bauplan formuliert sein: Zahlen und Texte als Informa-tionen zu den Eigenschaften des Fahrzeugs (Vorstufe einer Klasse). (Eine Darstellung dieser Art wird in manchen Fachdisziplinen als symbolisches Modell bezeichnet.) C.O.

Von der Schablone … Eine Klasse Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Die Schablone definiert den Bauplan des Fahrzeugs (falls zusätzliche detaillierte Angaben vorliegen). C.O.

… zum individuellen Kfz Das Objekt Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Und so soll das individuelle Kfz aussehen! C.O.

Andere Möglichkeit! Ein anders Objekt der gleichen Klasse Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Ein anderes „Individuum“. C.O.

Schritte der Modellierung Wirklichkeit Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Schritte der Modellierung Wirklichkeit Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen 1. Objekte, die offensichtlich den gleichen Bauplan haben, analysieren. (Hier: die Fahrzeuge, nicht die Fahnen, Verkehrs-schilder usw.) Welche gemeinsamen Eigenschaften mit individueller Ausprä-gung (wie Farbe, Fahrzeugnummer usw.) können diese Objekte besitzen? C.O.

Schritte der Modellierung Wirklichkeit Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen 1. Objekte, die offensichtlich den gleichen Bauplan haben, analysieren. (Hier: die Fahrzeuge, nicht die Fahnen, Verkehrs-schilder usw.) Welche gemeinsamen Eigenschaften mit individueller Ausprä-gung (wie Farbe, Fahrzeugnummer usw.) können diese Objekte besitzen? 2. Übertragung in die Modellwelt Individuelle Dinge wie z. B. Farbe = rot werden zu Attributen verallgemeinert. Kfz Hersteller: Text Hubraum: Zahl ……. Kfz: Bauplan (Vorläufer der Klasse im Sinne der OOP), der Eigen-schaften festlegt. Die Attribute haben einem be-stimmten Datentyp. C.O.

Was passiert mit den Fahrzeugen? Bevor die Klasse „Kfz“ fertiggestellt werden kann, muss geklärt werden, welcher Ausschnitt der reale Welt zu modellieren ist: Produktion des Fahrzeugs? Verkauf des Fahrzeugs? Reparatur des Fahrzeugs? Fahrzeug verschrotten? Ein Autohaus ist wohl in erster Linie für die beiden mittleren Bereiche zuständig. Fragestellung (für die Verwaltung): Welche Vorgänge oder Abläufe sind von Wichtigkeit ( Geschäftsprozesse)? Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Operationen / Methoden Die Modellwelt soll sich nun lediglich auf die Verwaltung (Auftragsbearbeitung, Rechnungswesen usw.) beziehen. Die MitarbeiterInnen in den angesprochen Abteilungen müssen Fahrzeuge: erfassen Stammdaten pflegen Informationen ausdrucken Teile bestellen usw. Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen In der objektorientierten Programmierung bezeichnet man diese Tätigkeiten als Operationen oder Methoden. Sie werden in das Klassenmodell mit aufgenommen. C.O.

Klasse: Der letzte Schliff! Notation in UML (Unified Modeling Language) Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Kfz Hersteller: Text Typ: Text ……… Hubraum: Ganzzahl Farbe: Text ……. VK Preis: Währung Erfassung() Ändern() Löschen() Drucken() …………… Klassenname Attribute (Datenfeld: Feldname und Datentyp) Methoden C.O.

Und nochmal: Von der Klasse … „Abstrakter“ Bauplan Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Kfz Hersteller: Text Typ: Text ……… Hubraum: Ganzzahl Farbe: Text ……. VK Preis: Währung Erfassung() Ändern() Löschen() Drucken() …………… C.O.

... zum Objekt „Konkretes“ individuelles Fahrzeug :Kfz Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen :Kfz Hersteller= „Daihatsu“ Typ= „Terios“ ……… Hubraum= 1495 Farbe= „metallic silber“ ……. VK-Preis= 17800,00 Erfassung() Ändern() Löschen() Drucken() …………… C.O.

Erweiterung und Erklärung Objekt = Instanz/Exemplar einer Klasse :Kfz Hersteller = „Daihatsu“ Typ= „Terios“ ……… Hubraum = 1495 Nennleistung (KW bei 6000U/min)= 77 Farbe= „rot“ ……. Grundreis= 17800 Leasingsonderzahlung= … Leasingrate = …. Laufzeit= ….. Erfassung() Ändern() Löschen() Drucken() …………… Unterstrichener Klassenname, zu dem das Objekt gehört, falls das Objekt bereits einen Namen hat: MeinKfz:Kfz Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Attributwerte, Daten: aktueller Zustand des Objektes, er kann durch Methoden zur Laufzeit verändert werden. Merke: Jedes Objekt besitzt eine Objektidentität, diese unterscheidet es von allen anderen Objekten. Verhalten des Objektes: Menge von Operationen (Methoden) C.O.

Aufgabe 1 Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Modellieren Sie bitte ein Kunden - Klassendiagramm! Überlegen Sie zunächst, welche Attributte/Methoden benötigt werden könnten. Erstellen Sie dann das entsprechende UML-Klassendiagramm. „Erzeugen“ Sie nun bitte ein Objekt (einKunde:Kunde) und wählen Sie sinnvolle Attributwerte. C.O.

Eine Lösung Kunde Ku_Nummer : integer Name : String Adresse : String Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Kunde Ku_Nummer : integer Name : String Adresse : String ..... Umsatz : double Erfassung() Ändern() Löschen() Adressaufkleber drucken() Serienbrief erstellen() Umsatz holen() C.O.

BlueJ: Didaktisches Entwicklungstool Einige Vorteile dieses Werkzeuges: Kaum Einarbeitungszeit notwendig Läuft auf dem Java Development Kit von Sun Microsystems: Komplettes Java, nicht vereinfacht Erzeugung von Objekten aus den Klassen auf Mausklick, die Methoden können direkt getestet werden Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Hinweise zu den nun folgenden Übungen: Diese sind in der vorliegenden Form nicht im Selbststudium zu lösen. Die Lehrerin/der Lehrer gibt Tipps, erklärt Fachbegriffe teilt zusätzliche Übungsblätter aus und bespricht die Lösungen. C.O.

1. Schritt BlueJ aufrufen … … und das Projekt Auto laden: Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

BlueJ: Klassen und Objekte intuitiv Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Quellcode übersetzten Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Klick mit der rechten Maustaste auf die Klasse C.O.

Quellcode ist übersetzt Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Erzeugen eines Objektes Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen new: eine Art „Befehl“, der eine Instanz … … nach dem „Bauplan“ der Klasse Auto erzeugt. Parameter: Preis des Fahrzeugs, dieser wird direkt bei der Erzeugung des Objektes festgelegt C.O.

Datenübergabe mit Parameter Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Der Konstruktor ist eine spezielle Methode der Klasse und weist den Attributen (Datenfeldern) der Klasse Anfangswerte zu. Hier bekommte der Konstruktor einen Wert als Parameter von „außen“. Parameter sind von einem bestimmten Datentyp (hier: double, für Zahlen mit Nachkommastellen) und haben einen Namen (hier: preis). C.O.

Anfangswert eintragen Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Objekt ist erzeugt! C.O. Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Objekt ist erzeugt! Instanzname (= Objektname) Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Instanzname (= Objektname) Objekt - leiste Name der zugrundeliegenden Klasse C.O.

Was kann das Objekt? Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Klick auf rechte Maustaste: Kontextmenü der Auto -Instanz, diese Einträge repräsentieren Operationen (=Methoden), mit denen die Instanz manipuliert werden kann. C.O.

Was kann das Objekt? Methoden Das kommt später! Objekt löschen C.O. Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Das kommt später! Methoden Objekt löschen C.O.

Methoden C.O. Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Was kostet der Spaß? Aufruf einer Methode Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Aufruf einer Methode Hinweis: Es soll hier nicht stören, dass die Geldbeträge mit nur einer (oder mehr als zwei) Nachkommastellen erscheinen; das wird später geändert! C.O.

Aufgabe Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen „Erforschen“ Sie nun bitte genau, was die vier Methoden der Klasse „Auto“ leisten. Zur Darstellung Ihrer Ergebnisse: Erstellen Sie bitte eine Tabelle mit der Überschrift „Objekt auto_1“ und den Spalten „Methodenname“ und „Beschreibung“. C.O.

Eine Klasse … C.O. Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Eine Klasse … viele Objekte! Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Alle Objekte der gleichen Klasse haben die gleichen Datenfelder und die gleichen Methoden! C.O.

Inhalte der Instanzvariablen Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Instanzvariable: Datenfeld, welches die aktuellen Daten, die das individuelle Objekt (hier auto3) benutzt, speichert. Sie definiert ein Attribut (auch: Eigenschaft) eines Objektes. C.O.

Kommunikation mit Objekten Der Teil zwischen den Klammern liefert Informationen hinsichtlich der Parameter. Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Auch diese Methode benötigt Information von „außen“, um ihre Aufgabe zu erfüllen: Parameter C.O.

Signaturen Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Signaturen der Methoden: Sie gibt Informationen über Methoden. C.O.

Signaturen Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Diese Methode liefert einen Wert (den Inhalt eines Datenfeldes), hier mit dem Datentyp double (d.h. eine Zahl mit Nachkommastellen) Diese Methode benötigt (im vorliegenden Fall) keine Daten von außen (leere Klammern). C.O.

Signaturen Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Signatur: Allgemeine „Beschreibung“: Die Methode wird im Programm zunächst „theoretisch definiert“, also programmiert. Konkreter Aufruf der Methode im Programm: Die Methode „gibPreisSonderausstattung“ des Objektes „aut01“ wird aufgerufen und liefert dann einen Wert. Beachte: Vor dem Punkt steht der Objektname, dahinter der Methodenname. C.O.

Signaturen Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Diese Methode liefert keinen Wert (den Inhalt eines Datenfeldes), hier mit dem Datentyp double (d.h. eine Zahl mit Nachkommastellen). Diese Methode benötigt (im vorliegenden Fall) Daten außen. In den Klammern stehen Parameter, diese haben einen Namen und sind von einem bestimmten Typ (hier: double). C.O.

Zustände! Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Das Objekt hat einen aktuellen Zustand: die Werte in den Datenfeldern repräsentieren diesen. C.O.

Quellcode Wo und wie werden nun Klassen in JAVA programmiert? C.O. Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Quellcode Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Da dieses Beispiel schon etwas komplexer ist, wird das Ganze an einem anderen Auto – „Modell“ vorgeführt. C.O.

Zuerst die Klasse Kfz hersteller: Text typ: Text hubraum: Ganzzahl ausgabe_Kfz() gibHubraum() Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Hinweis: Hersteller und Fahrzeugtyp stehen der Einfachheit halber als Literale im Konstruktor, lediglich der Hubraum soll beim Konstruktoraufruf von außen Daten empfangen. Namenskonventionen: Klassennamen beginnen mit einen großen Buch -staben, Datenfelder mit einem kleinen Buchstaben, Klassennamen und Methodennamen ebenfalls mit einem kleinen Buchstaben, wobei i.d.R. Methodennamen mit einem Verb beginnen. C.O.

Jetzt kommt JAVA Klassendefinition Deklaration: Datenfelder public class Kfz { private String hersteller; private String typ; private int hubraum; public Kfz(int hub) hersteller = "Opel"; typ = "Astra"; hubraum = hub; } public int gibHubraum() return hubraum; public void ausgabe_Kfz() System.out.println(hersteller + "-Info"); System.out.println("Typ: " + typ); System.out.println("Hubraum: " + hubraum); System.out.println(); Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Klassendefinition Deklaration: Datenfelder Konstruktor Programmanweisungen: Wertzuweisung, Initialisierung, Methoden Programmanweisungen: Ausgabe von Werten oder Texten Hinweis: Mit weiteren „Typen von Programmanweisungen können Wiederholungsstrukturen oder Abfragen realisiert werden. Dies wird später behandelt. C.O.

Programmanalyse (Quelltext) public class Kfz { } Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Klassendefinition public: auf diese Klasse kann von außen zugegriffen werden. (Gegenteil: private, macht hier aber keinen Sinn!) Es darf nicht mehr als eine öffentliche Klasse in einer Übersetzungseinheit enthalten sein. Zwischen diesen Klammern steht der „Innenteil“ der Klasse (Deklarationen und Methoden mit Anweisungen). Das Einrücken der Klammern (oder der Programmzeilen) ist beliebig, allerdings sollte die Programmstruktur dadurch verdeutlicht werden (Mittel der Doku-mentation). C.O.

Programmanalyse Hersteller, Typ...: Feldname public class Kfz { private String hersteller; private String typ; private int hubraum; } Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Deklaration: Datenfelder (da diese zu unterschiedlichen Zeiten unterschiedliche Werte enthalten können, heißen sie auch Variablen) Instanzvariablen, private: Die Werte können von außen nicht manipuliert werden. Datentyp String: Zeichenkette Datentyp int (integer): Zahlen ohne Nachkommastellen Hersteller, Typ...: Feldname Beachte: Die Deklaration eines Feldes wird mit einem „;“ abgeschlossen C.O.

Programmanalyse Konstruktor Er sorgt dafür, dass die Datenfelder des Objektes unmittelbar nach seiner Erzeugung sinnvolle Werte besitzen (Initialisierung). Er hat den gleichen Name wie die Klasse und wird automatisch aufgerufen. Die Initialisierung erfolgt entweder direkt mit dem Gleichsetzungsoperator ´=´ als Wertezuweisung: typ = "Astra"; oder mit Hilfe einer Parameter - übergabe: public Kfz(int hub) Beachte: Die Programmanweisungen des Konstruktors (wie auch der Me - thoden) stehen zwischen ´{´ und ´}´. public class Kfz { private String hersteller; private String typ; private int hubraum; public Kfz(int hub) hersteller = "Opel"; typ = "Astra"; hubraum = hub; } Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Programmanalyse Ergänzung: public Kfz(int hub) Formaler Parameter public class Kfz { private String hersteller; private String typ; private int hubraum; public Kfz(int hub) hersteller = "Opel"; typ = "Astra"; hubraum = hub; } Ergänzung: public Kfz(int hub) Formaler Parameter Aktueller Parameter Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Parameterübergabe und Zuweisung public class Kfz { private String hersteller; private String typ; private int hubraum; public Kfz(int hub) hersteller = "Opel"; typ = "Astra"; hubraum = hub; } Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Zuweisung Parameterübergabe C.O.

Programmanalyse Methoden Typ 1: public class Kfz { private String hersteller; private String typ; private int hubraum; public Kfz(int hub) hersteller = "Opel"; typ = "Astra"; hubraum = hub; } public int gibHubraum() return hubraum; public void ausgabe_Kfz() System.out.println(hersteller + "-Info"); System.out.println("Typ: " + typ); System.out.println("Hubraum: " + hubraum); System.out.println(); Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Methoden Typ 1: Rückgabe eines Wertes eines bestimmten Datentyps, hier: Ausgabe im BlueJ - Fenster (normalerweise liefert eine Methode mit return einen Wert an eine andere Methode zurück) Typ 2: Keine Rückgabe (void) „echte“ Ausgabeanweisung: Bildschirm – Ausgabe, auch unabhängig von BlueJ C.O.

Programmanalyse public class Kfz { private String hersteller; private String typ; private int hubraum; public Kfz(int hub) hersteller = "Opel"; typ = "Astra"; hubraum = hub; } public int gibHubraum() return hubraum; public void ausgabe_Kfz() System.out.println(hersteller + "-Info"); System.out.println("Typ: " + typ); System.out.println("Hubraum: " + hubraum); System.out.println(); Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Auch hier werden Methoden von Objekten aufgerufen (Punkt-Operator!) hersteller + "-Info" Ausgabe des Inhalts einer Variablen und daran „angehängt“ das Literal "-Info" C.O.

Zusammenfassung public class Klassenname { Datenfelder Konstruktoren Methoden } Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Datenfelder: Speichern die Daten, die das Objekt benutzt, sie beschreiben als Eigenschaften den Zustand eines Objekts, individuelle Charakteristikum (Zustand), um ein bestimmtes Objekt von einem anderen desselben Typs zu unterscheiden. Konstruktoren: Setzen neu erzeugte Objekte in einen vernünftigen Anfangszustand Methoden: Implementieren das Verhalten der Objekte (dienen auch der Veränderung der Objekteigenschaften) C.O.

Mini - Projekt Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen Als kleines „Abschlussprojekt“ zu diesem Teil 1 kann nun die Modellierung eines Fahrzeugs stehen, welches alle bisher kennengelernten Methoden integriert. Zusatzaufgabe: Informieren Sie sich bitte, wie ein Quelltext mit Kommentaren versehen werden kann und welchen Sinn das macht (Hilfe: s. Quelltext auf den letzten beiden Folien dieser Präsentation). C.O.

Quellen Balzert, Helmut: Lehrbuch Grundlagen der Informatik.- Spektrum Verlag Barnes, D. u. Kölling, M.: Java lernen mit BlueJ.- Pearson-Verlag Das BlueJ Tutorial http://www.bluej.org/download/download.html http://jerry.c-lab.de/java/21Tage/kap02.htm Alle Fotos u. Abbildungen: C. Oberweis Modelle und Modellierung Klassen- diagramme Objekte erzeugen Methoden aufrufen Signaturen Java Quellen C.O.

Quellcode, Beispiel C.O. /** * Die Klasse Auto modelliert einfache Fahrzeuge. * Der Nettopreis für das Fahrzeug wird über den Konstruktor festgelegt. * Netto- und Bruttopreis können ausgegeben werden. * Zusätzlich können für Sonderausstattungen mehrmals Preise berücksichtigt werden. * Autor: Christoph Oberweis (www.coberweis.de) * Version: 2008.06.21 */ public class Auto { // Der Preis (Netto, Brutto, Preis fuer Sonderausstattung) private double preis_netto; private double preis_brutto; private double preis_sonderausstattung; // Konstruktor: Erzeuge ein Fahrzeug zum angegebenen Preis public Auto(double preis) preis_netto = preis; preis_brutto = 0.00; preis_sonderausstattung = 0.0; } C.O.

Quellcode C.O. // Liefere den Nettopreis public double gibNettogrundpreis() { return preis_netto; } // Nimmt Preis fuer Sonderausstattung public void nimmPreisSonderausstattung(double pr_sonder) preis_sonderausstattung = preis_sonderausstattung + pr_sonder; // Zeige bisherigen Preis fuer Sonderausstattung public double gibPreisSonderausstattung() return preis_sonderausstattung; // Berechne den Bruttopreis und drucke Netto- und Bruttopreis. public void PreisDrucken() preis_netto = preis_netto + preis_sonderausstattung; preis_brutto = preis_netto * 1.19; // Ausdruck Rechnungsfuss System.out.println("Gesamtpreis Netto"); System.out.println( preis_netto + " EURO"); System.out.println("Gesamtpreis Brutto"); System.out.println( preis_brutto + " EURO"); System.out.println("=================="); System.out.println(); C.O.