Klassen in Java. Grundlagen der Programmierung. Stephan Kleuker 68

Ähnliche Dokumente
Klasse. Grundlagen Programmierung. Stephan Kleuker 37

erste Befehle Grundlagen der Programmierung Stephan Kleuker 34

Konstruktor. Grundlagen der Programmierung. Stephan Kleuker 90

Prof. Dr. Stephan Kleuker Hochschule Osnabrück. Programmierung 1

Elementare Konzepte von

Leider gibt es in einigen Fällen keine wirklich einheitlichen Fachbegriffe im Deutschen, obwohl einige als "der Standard" bezeichnet werden.

Java-Applikationen (Java-Programme)

Wie entwerfe ich ein Programm?

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16

Probeklausur Informatik 2 Sommersemester 2013

Computeranwendung und Programmierung (CuP)

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

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

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

Variablen, Konstanten und Datentypen

Java Datentypen und Variablen

Einstieg in die Informatik mit Java

Vorkurs Informatik WiSe 16/17

Repetitorium Informatik (Java)

Eingeben, Ausgeben, Übergeben, Zurückgeben

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

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

Computeranwendung und Programmierung (CuP)

2.8 Klassen. Nichtgleichartige Elemente können in Klassen zu einem neuen Typ zusammengefasst werden. Beispiel: Die drei Komponenten

Name Klasse Datum. Um nun mit Variablen arbeiten zu können, müssen nun einige Voraussetzungen erfüllt sein:

Notiz. Einige der folgenden Regeln sind Java-spezifisch, andere gelten auch für andere Programmiersprachen.

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Programmierstil. Objektsammlungen. Konzepte. Zwischenspiel: Einige beliebte Fehler... Variablennamen Kommentare Layout Einrückung

Pakete Software Entwicklung 1

Wo sind wir? Übersicht lexikale Struktur von Java

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

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner.

Kapitel 3: Variablen

Enum-Klassen. Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: :36. Enum-Klassen 1/12

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Grundlagen von C# - 1

Tag 2 Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Softwareentwicklung II (IB) Enum-Klassen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Vorkurs Informatik WiSe 17/18

Beispielprüfung CuP WS 2015/2016

Werkzeuge zur Programmentwicklung

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Quick-Start Informatik Programmieren in Python Teil 1

Projekt 3 Variablen und Operatoren

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme

Einführung in die Programmierung 1

Einführung in die Informatik

Ausdrücke. Variable, Typ, Kontext, Deklaration, Initialisierung, Ausdruck, Syntax, Semantik, Seiteneffekt

Tag 7 Repetitorium Informatik (Java)

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

WS2017/ Oktober 2017

WS2018/ Oktober 2018

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Modularisierung in Java: Pakete Software Entwicklung 1

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Einstieg in die Informatik mit Java

Java I Vorlesung Imperatives Programmieren

Grundelemente objektorientierter Sprachen (1)

Programmierkurs Python I

Programmieren in Java -Eingangstest-

Einstieg in die Informatik mit Java

Folienpaket 6 Themenschwerpunkte: Klassen in OOP, Referenztypen: Objekte /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Grundelemente objektorientierter Sprachen (1)

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Programmierkurs Python I

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

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Funktionen nur wenn dann

Objektmethoden. Grundlagen der Programmierung. Stephan Kleuker 121

Die Klasse MiniJava ist in der Datei MiniJava.java definiert:

Greenfoot: Variablen. Nicolas Ruh und Dieter Koch

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Computeranwendung und Programmierung (CuP)

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

JAVA-Datentypen und deren Wertebereich

Einführung in die Programmierung I. 8. Prozedurale Konzepte in Java, Teil1. Stefan Zimmer

Objektorientiertes Programmieren (Java)

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Grundlagen der OO- Programmierung in C#

Programmierkurs C++ Variablen und Datentypen

Von der Programmiersprache WHILE zum ersten Einstieg in Java

Transkript:

Klassen in Java Stephan Kleuker 68

Klassen in Java (Syntax) (1/3) class Datum { int tag; int monat; int jahr; } Java hat Schlüsselworte (z. B. class), diese dürfen z. B. nicht als Variablennamen genutzt werden viele Programmfragmente stehen in geschweiften oder runden Klammern (immer beide Klammern eintippen, dann füllen) geschweifte Klammer am Anfang und am Ende der Klassendefinition Befehle enden mit einem Semikolon Objektvariable: <Typ> <Name>; Stephan Kleuker 69

Klassen in Java (Syntax) (2/3) Variablen- und Klassennamen beginnen mit einem Groß- oder Kleinbuchstaben (keine Umlaute oder Sonderzeichen, auch wenn theoretisch möglich) werden gefolgt von beliebig vielen Groß- und Kleinbuchstaben, Ziffern oder _ keine Syntax, aber Konvention Klassennamen groß, typisch Einzahl (Student nicht Studenten) Objektvariablen klein, vollständige Worte, "sprechend" bei zusammengesetzten Namen werden zweite Worte direkt hinten an gefügt und erster Buchstabe großgeschrieben, z. B. eingeschriebenam, richtig: starttermin falsch: starttermin eine Objektvariable pro Zeile deklarieren Stephan Kleuker 70

Klassen in Java (Syntax) (3/3) Platzierung von Klammern oder class Datum { int tag; int monat; int jahr; } class Datum { int tag; int monat; int jahr; } auf Folien obige Variante (spart eine Zeile) Einrückungen haben keine semantische Bedeutung Stephan Kleuker 71

Syntaxprüfung durch Compiler (genauer Parser) Programmcode muss so übersetzt werden, dass der Computer Befehle verarbeiten kann (-> genauer später), Prozess heißt kompilieren (übersetzen) Vor dem Kompilieren (genauer: erster Schritt dabei), wird die Syntax des Programms geprüft (geparst) Bei fehlerhafter Syntax wird mehr oder minder genaue Fehlermeldung ausgegeben Kompilierung findet typischerweise in einer Entwicklungsumgebung statt (wir nutzen zunächst BlueJ) Stephan Kleuker 72

Erfolgreiche Kompilierung in BlueJ Stephan Kleuker 73

Fehlerhafte Kompilierung in BlueJ Stephan Kleuker 74

Woher kommen die Klassen und Typen Java bietet bereits viele Klassen als Typen an, in der sogenannten Klassenbibliothek Das Wissen über existierende Klassen ist Teil der Programmiererfahrung In der Programmierausbildung werden teilweise existierende Klassen neu programmiert um Erfahrungen zu sammeln Übersicht bietet u. a. Java Dokumentation (lokal herunterladbar) oder auch http://download.oracle.com/javase/7/docs/api/index.html Woher die Objekte kommen bleibt noch unklar Stephan Kleuker 75

Wichtige elementare Typen und Klassen (Ausschnitt) elementarer Typ Nutzung int double (float float) boolean long Klasse String ganze Zahlen Fließkommazahlen Wahrheitswerte, false, true ganze Zahlen, größerer Zahlenbereich (mehr Speicher benötigt) Nutzung Texte, Werte stehen in Hochkommata ArrayList<Klasse> Sammlung von beliebig vielen Objekten eines Typs; nicht einfach hinschreibbar; merkt sich die Reihenfolge ArrayList<String> <String> beliebig viele Texte, z. B. ["Hai", "Wo", "Da"] ["Hai", "Wo", "Da"] Stephan Kleuker 76

Ordnung in der Klassenbibliothek ähnlich wie große Dateimengen in Ordnern und Unterordnern strukturiert werden, werden auch Klassen in Ordnerstrukturen thematisch abgelegt Ordner heißen in Java Pakete Beispiel: Die Klasse ArrayList liegt im Paket java.util Damit Klasse aus Paket genutzt werden kann, muss die Klasse im Quellcode bekannt gemacht werden, vor der Klasse steht dann import java.util.arraylist andere Basisklassen wie String liegen in java.lang (da häufig genutzt, müssen die Klassen nicht importiert werden) Stephan Kleuker 77

Erstellung der Klasse Adresse (1/2) ich:adresse strasse= Barabarastr. hausnummer= 16 postleitzahl= 49076 stadt= Osnabrück bundesland= Nds jeweils genau einen Typ überlegen Ist hausnummer vom Typ int? Nein, Nummern wie 16a wären syntaktisch nicht korrekt Ist Postleitzahl vom Typ int? Nein, führende Nullen nicht möglich 04356 Leipzig Fazit: Bild links ist falsch Stephan Kleuker 78

Erstellung der Klasse Adresse (2/2) Stephan Kleuker 79

Klasse Student Stephan Kleuker 80

fehlerhafte Klasse Praktikum Stephan Kleuker 81

korrigierte Klasse Praktikum Stephan Kleuker 82

Seltener genutzte Variante ohne import class Praktikum { String modul; String semester; String veranstalter; String mitarbeiter; java.util.arraylist<string <String> termine; java.util.arraylist<student <Student> teilnehmer; } Stephan Kleuker 83

Projektübersicht in BlueJ Stephan Kleuker 84

Beispielmodellierung Aufgabe: Zu entwickeln ist eine Software mit der man Bons verwalten kann. Diese Bons müssen von unserer Software verwaltet werden. Jeder Bon wird damit ein Objekt sein. Es stellt sich die Frage nach weiteren Objektvariablen und Ihren Typen. Ansatz: Analysiere einen Bon, bestimme seine Eigenschaften, entweder von außen nach innen (Bon und dann seine Details) oder innen nach außen (erst Details und dann daraus den Bon zusammensetzen) Hinweis: Beide Ansätze ok, typischerweise iterativer Prozess Stephan Kleuker 85

Bon (1/4) erste Objektvariablen unternehmen (String) adresse (Adresse) datum (Datum) uhrzeit (String) produkte (??? gleich) diskutabel mehrwertsteuer (gilt für viele Bons) summe (da aus produkte berechenbar) blabla (String, nicht von Interesse) Stephan Kleuker 86

Bon (2/4) Produkte genauer ist ein Sammlung von zwei Zeilen jede Zeile enthält einen Einzelposten bestehend aus anzahl (int) produktname (String) einzelpreis (double) gesamtpreis (wird aber berechnet) Ansatz: EinzelPosten wird Klasse, produkte wird Sammlung von Einzelposten Stephan Kleuker 87

Bon (3/4) entstandene Klassen Stephan Kleuker 88

Bon (4/4) neue Klassen genauer import java.util.arraylist; class Bon { String unternehmen; Adresse adresse; Datum datum; String uhrzeit; ArrayList<Einzelposten> produkte; } class Einzelposten { int anzahl; String produktname; double einzelpreis; } Stephan Kleuker 89