IT I. Ronald Ortner. (Folien basierend auf Peter Auers Folien aus dem WS 2009/10)

Ähnliche Dokumente
IT I. Ronald Ortner. (Folien basierend auf Peter Auers Folien aus dem WS 2009/10)

IT I. Ronald Ortner. (Folien basierend auf Peter Auers Folien aus dem WS 2009/10)

Organisatorisches. zwei Gruppen Gemeinsame Wissensüberprüfungen Do (HR) Gruppe 1: Do 12:00-13:00 (HS FöT) Gruppe 2: Do 13:00-14:00 (HS FöT)

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

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP)

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

Computeranwendung und Programmierung (CuP)

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

Repetitorium Informatik (Java)

Methoden und Wrapperklassen

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

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

Einführung in die Programmierung mit BlueJ

Organisatorisches. VO und UE am bleiben am Wissensüberprüfung beginnt schon etwas früher: Do, , 10:30 bis 11:30 (HR)

Grundelemente objektorientierter Sprachen (1)

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Praktische Informatik 1

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1)

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Organisatorisches. Ersatztermine UE: - Gruppe 1: Di, , 18:00-19:30 - Gruppe 2: Mi, , 18:00-19:30. VO am

Java Anweisungen und Ablaufsteuerung

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

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

JAVA-Datentypen und deren Wertebereich

Einstieg in die Informatik mit Java

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Vorkurs Informatik WiSe 16/17

Javakurs für Anfänger

Umsetzung einer Klassenkarte in einer Programmiersprache

1 Klassen anlegen und Objekte erzeugen

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

Java-Programmierung mit NetBeans

Klassen als Datenstrukturen

Vorkurs Informatik WiSe 17/18

IT I: Heute. Nachbetrachtung Wissensüberprüfung. Einführung Vererbung. Roboter in becker.robots. Filialenbelieferung 4.11.

Einstieg in die Informatik mit Java

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

1 Klassen anlegen und Objekte erzeugen

Programmierkonventionen - 1 -

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

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

Tag 8 Repetitorium Informatik (Java)

Welche Informatik-Kenntnisse bringen Sie mit?

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

7. Übung Informatik II - Objektorientierte Programmierung

Objektorientierte Programmierung Studiengang Medieninformatik

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

2. Unterprogramme und Methoden

Abschnitt 10: Klassen, Objekte und Methoden in Java

AuD-Tafelübung T-B5b

Übungsblatt 1. Java Vorkurs (WS 2017)

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Javakurs für Anfänger

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Abschnitt 6: Klassen, Objekte und Methoden in Java

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

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Tag 7 Repetitorium Informatik (Java)

Einführung in die Programmierung

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Klassenvariablen, Klassenmethoden

Einführung in die Programmierung 1

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

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

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Einstieg in die Informatik mit Java

Übungen zur Vorlesung Wissenschaftliches Rechnen I

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Wie entwerfe ich ein Programm?

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

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

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

Implementieren von Klassen

3.2 Datentypen und Methoden

OCP Java SE 8. Lambda

Informationslogistik Allgemeine Informationen

OCP Java SE 8. Lambda

Tag 2 Repetitorium Informatik (Java)

10.4 Konstante Objekte

Javakurs für Anfänger

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

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Grundlagen. Übungen. Klassen, Attribute, Assoziationen, Methoden. Grundlagen_Klassen_Attribute_Assoziationen_Methoden.odt. Christine Janischek

Einstieg in die Informatik mit Java

Java I Vorlesung Imperatives Programmieren

Konstruktor. Grundlagen der Programmierung. Stephan Kleuker 90

Beispielprüfung CuP WS 2015/2016

Transkript:

IT I Ronald Ortner (Folien basierend auf Peter Auers Folien aus dem WS 2009/10)

Warum Programmieren? Programmierfertigkeit ist eine Basistechnik. Programmiersprache ist eindeutiges und formales Ausdrucksmittel für Konzepte. Programm ist ausführbar und (teilweise) überprüfbar. OOP ist als Ausdrucksmittel gut geeignet. Programmieren fördert die Fähigkeit, die Lösungsschritte für ein Problem klar darzulegen. Besseres Verständnis für die Arbeitsweise eines Computers 11.10.2018 IT I - VO 1 2

Inhalt Objektorientiertes Programmieren (OOP) in Java Fähigkeit zur Abstraktion und Modellbildung Simulation 11.10.2018 IT I - VO 1 3

Programmieren Gute Nachricht: Jeder kann programmieren erlernen. Schlechte Nachricht: Wie das Erlernen anderer komplexer Fähigkeiten ist das zeitaufwändig! 11.10.2018 IT I - VO 1 4

Programmieren ist Übungssache! Gegeben seien die Klassen Produkt und Anlage. Die Klasse Produkt verfügt über eine Methode public boolean hatprioritaet (), die true zurückgibt, wenn das Produkt Priorität hat, ansonsten false. Die Klasse Anlage verfügt über eine Methode public int gibbearbeitungszeit (Produkt p), die die Bearbeitungszeit des Produktes p auf der Anlage zurückgibt. Aufgabe: Schreiben Sie eine Methode ArrayList<Produkt> waehleprodukte(arraylist< Produkt > dieprodukte, int zeit, Anlage a), die Produkte aus dieprodukte zur Bearbeitung auf Anlage a auswählt und in einer ArrayList zurückgibt, die innerhalb von zeit Zeiteinheiten bearbeitet werden können. Dabei sollen zunächst möglichst viele Produkte mit Priorität gewählt werden, anschließend sollen für die gegebenenfalls noch verbleibende Zeit möglichst viele Produkte ohne Priorität gewählt werden. 11.10.2018 IT I - VO 1 5

Programmieren ist Übungssache! 11.10.2018 IT I - VO 1 6

Verbreitete Irrtümer Programmieren lernt man durch Zusehen. Wenn man ein Programm versteht, hätte man es auch selbst schreiben können. Selbständiges Programmieren verbraucht Hirnmasse. Wenn's drauf ankommt (Prüfung), genügen die erlaubten schriftlichen Unterlagen, um die richtige Lösung zu finden. Für einen positiven Übungsabschluss genügen - neben VO und UE zusätzlicher Zeitaufwand von wöchentlich 10-15 Minuten, - je ein Tutoriumsbesuch in der Woche vor den Prüfungen. 11.10.2018 IT I - VO 1 7

Wie schafft man IT I? Selbst programmieren ist wichtig! Alle Programme vom Übungsblatt programmieren! Ein Programm nicht nur einmal sondern mehrmals schreiben! Alternative Lösungen programmieren! Programme mit Kollegen vergleichen, verstehen, und nachprogrammieren! Eigene Problemstellungen programmieren! Dinge ausprobieren! Programme testen! Notfalls im Tutorium Probleme besprechen! 11.10.2018 IT I - VO 1 8

Wieviel Zeit haben Sie? Wieviele Stunden planen Sie pro Woche im aktuellen Semester für IT I aufzuwenden (exkl. Besuch der VO und UE)? Wieviele Stunden Zeit haben Sie pro Woche für CuP aufgewandt? 11.10.2018 IT I - VO 1 9

Lva-Evaluierung Wie hoch war Ihr durchschnittlicher zeitlicher Aufwand pro Woche für die Übung (WS 15/16)? Weniger als 1 Stunden: 9% 1 bis 3 Stunden: 26% 3 bis 6 Stunden: 30% 6 bis 9 Stunden: 35% 11.10.2018 IT I - VO 1 10

Lva-Evaluierung Wie hoch war Ihr durchschnittlicher zeitlicher Aufwand pro Woche für die Übung (WS 17/18)? Weniger als 1 Stunden: 0% 1 bis 3 Stunden: 29% 3 bis 6 Stunden: 47% 6 bis 9 Stunden: 24% 11.10.2018 IT I - VO 1 11

Brauch ich CuP für IT I? Formal: Seit WS 17/18 ist die VO:CuP formale Voraussetzung für die UE: IT I. D.h. ohne positiven VO:CuP Abschluss keine Anmeldung zur UE. Die UE: CuP ist keine formale Voraussetzung. Inhaltlich: CuP-Stoff wird wiederholt. Dies geschieht jedoch im Schnelldurchlauf. 11.10.2018 IT I - VO 1 12

Organisatorisches Vorlesung Donnerstag 8:45 bis 10:15 Übung zwei Gruppen Gemeinsame Wissensüberprüfungen Do 11-12 (HR) Gruppe 1: Do 12:00-13:00 (HS FöT) Gruppe 2: Do 13:00-14:00 (HS FöT) Tutorium Ab nächster Woche Termine (siehe Lva. Repetitorium IT I): Mo, 16-18 Uhr (?) Anmeldung für UE im MUOnline endet heute. 11.10.2018 IT I - VO 1 13

Organisatorisches Am 1.11. entfallen VO und UE. Ersatzeinheiten am Dienstag, den 30.10.: - VO 8:45 bis 10:15 - UE 10:30 bis 12 (Gr 1) und 12 bis 13:30 (Gr 2) In der letzten Semesterwoche findet am Dienstag 8:45 bis 10:15 eine VO-Fragestunde statt. (Am Do findet der Abschlusstest statt, VO und UE entfallen.) 11.10.2018 IT I - VO 1 14

Vorlesung Demonstration von Konzepten und Techniken an kleineren und größeren Beispielen. Das ist (hoffentlich) instruktiv. Jedoch: Programmieren lernt man nicht durch Zusehen! 11.10.2018 IT I - VO 1 15

Übungsaufgaben Übungsaufgaben erhalten Sie jeweils in der VO Einige Beispiele abzugeben (Abgabesystem). Andere sind bis zur UE vorzubereiten. Auch diese Beispiele werden gewertet (Kreuzerlliste). Abgabe bis Donnerstag der darauf folgenden Woche um 8:00. Abgabe wird automatisch geprüft. Sie erhalten eine Bestätigung bzw. eventuelle Fehlermeldungen. 11.10.2018 IT I - VO 1 16

Eigenständiges Lösen der Übungsbeispiele Für einen guten Lernerfolg ist das eigenständige Lösen der Übungsbeispiele Voraussetzung. Habe ich den Eindruck, dass Beispiele nicht eigenständig gelöst wurden (z.b. identische Beispiele bei Besprechung in den Übungen), behalte ich mir vor, Beispiele nicht zu werten. 11.10.2018 IT I - VO 1 17

Testen der programmierten Übungsbeispiele Ein Beispiel ist erst dann gemacht, wenn es auch getestet wurde! 11.10.2018 IT I - VO 1 18

Ablauf der Übung Übungsstunden: 1. Gemeinsame Wissensüberprüfung im Hilbertraum (meist am PC, manchmal auch am Papier!) 2. Besprechen der zuletzt abgegebenen Beispiele durch Studierende 3. Bearbeiten der nächsten Beispiele (am eigenen Rechner!) 11.10.2018 IT I - VO 1 19

Beurteilung UE Die Übungsnote ergibt sich aus: - Anzahl der abgegebenen Beispiele zu 15% - Wissensüberprüfungen zu 25% - Zwischentest (am 13.12. ab 10h) zu 25% - Abschlusstest (am 31.1. ab 9:30h) zu 35% Für eine positive Beurteilung sind mehr als 50% des erreichbaren Ergebnisses notwendig. 11.10.2018 IT I - VO 1 20

Beurteilung VO Für die Vorlesung gibt es eine eigene schriftliche Abschlussprüfung, ähnlich der CuP-Abschlussprüfung (aber nicht am PC). Prüfungstermin am 1.2., 8 bis 10 oder am 31.1. nach dem UE-Abschlusstest? Anmeldung über MU Online. 11.10.2018 IT I - VO 1 21

Vorlesungsunterlagen Vorlesungsskriptum über MU Online für angemeldete Studierende zu Download Folien, Beispiele, Übungsblätter, Softwarelinks auf der Lehrveranstaltungsseite 11.10.2018 IT I - VO 1 22

Buch zur Objektorientierten Programmierung David J. Barnes & Michael Kölling, Java lernen mit BlueJ, 5. Auflage, Pearson Studium, 2013. (Das ist ein Arbeitsbuch. Unter den Kopfpolster legen nützt nix.) 11.10.2018 IT I - VO 1 23

Java Software Wir verwenden in den Übungen BlueJ 3.1.7 Java JDK 1.8 (Java 8) 11.10.2018 IT I - VO 1 24

Konzepte der OOP (1) Objekte und Klassen Eine Klasse beschreibt eine bestimmte Art von Objekten, z.b. Kreiden oder Autos. Ein Objekt ist dann z.b. ein bestimmtes Stück Kreide oder ein bestimmtes Auto. Durch die Klassenbeschreibung werden die gemeinsamen Eigenschaften der Objekte dieser Klasse festgelegt. Objekte in einem Programm können, aber müssen keinem realen Objekt entsprechen. 11.10.2018 IT I - VO 1 25

Konzepte der OOP (2) Attribute beschreiben die (relevanten) Merkmale der Objekte einer Klasse. Z.B.: Ein Attribut eines Autos könnte sein Kennzeichen sein. Der Datentyp eines Attributs bestimmt, welche Werte das Attribut annehmen kann. Z.B.: Die Kennzeichen eines Autos ist ein String (eine Zeichenkette). Der Zustand eines Objektes ist durch die Werte seiner Attribute bestimmt. Die Klassenbeschreibung gibt an, welche Attribute die Objekte der Klasse haben. 11.10.2018 IT I - VO 1 26

Datentypen in Java Primitive Datentypen Genau 8 Typen: int, boolean, double, long, char, float, byte, short Vordefinierte Typen: Z.B. String Selbstdefinierte Typen/Klassen Z.B. Auto 11.10.2018 IT I - VO 1 27

Konzepte der OOP (3) Konstruktoren erzeugen Objekte einer Klasse. Java: Konstruktoren heißen wie die zugehörige Klasse. Ein Konstruktor wird mit dem Schlüsselwort new aktiviert. Der Zustand eines neuen Objektes muss durch Setzen der Attributwerte definiert werden (Initialisierung des Objektes). 11.10.2018 IT I - VO 1 28

Syntax einer Java-Klasse Klasse: class Klassenname { Attributdefinition Konstruktordefinition } Methodendefinition Attributdefinition private Datentyp Attributname; 11.10.2018 IT I - VO 1 29

Konzepte der OOP (4) Methoden sind Aufforderungen an Objekte. Methoden haben einen Namen, können mit Parametern versehen sein, und können einen Rückgabewert liefern. Für jede Methode muss angegeben werden, welche Anweisungen sie ausführt. Die Rückgabe eines Wertes erfolgt mittels return. 11.10.2018 IT I - VO 1 30

Parameter Durch Angabe von Parametern können Konstruktoren Objekte mit verschiedenen Attributwerten erzeugen. Parameter dürfen nicht mit Attributen verwechselt werden: Parameter stehen nur während der Ausführung des Konstruktors zur Verfügung. Attribute bleiben während der gesamten Lebenszeit des Objektes erhalten. Auf Attribute kann eindeutig mit dem Schlüsselwort this zugegriffen werden. 11.10.2018 IT I - VO 1 31

Methoden in Java Syntax: Datentyp Methodenname(Parameterliste) { Methodenrumpf } Datentyp bezeichnet den Datentyp des Rückgabewertes. Wenn die Methode keinen Rückgabewert liefert, steht hier void. Parameterliste ist eine Liste der Parameter (durch Beistriche getrennt) mit ihren Datentypen. Die Parameterliste kann auch leer sein. Der Methodenrumpf gibt an, welche Anweisungen von der Methode ausgeführt werden. 11.10.2018 IT I - VO 1 32

Vergleichsoperatoren in Java ==,!=, <, >, <=, >= Diese Operatoren vergleichen zwei Werte und liefern als Ergebnis einen Wert vom Datentyp boolean (also true oder false). Die Operatoren <, >, <=, >= sind auf primitive arithmetische Datentypen (z.b. int, double, long) anwendbar. Der Gleichheitsoperator == ist auf alle Datentypen anwendbar (ebenso!=). Für double-werte ist das wegen des Rundungsfehlers meist nicht sinnvoll. Der Vergleich von Objektreferenzen liefert nur true, wenn die Referenzen auf dasselbe Objekt zeigen. 11.10.2018 IT I - VO 1 33

Die bedingte Anweisung (1) if( Ausdruck ) { Anweisungsblock1 } else { Anweisungsblock2 } Ausdruck muss einen Wert vom Datentyp boolean liefert. Anweisungsblock1 wird nur ausgeführt, wenn Ausdruck true liefert, Anweisungsblock2 wird nur ausgeführt, wenn Ausdruck false liefert. 11.10.2018 IT I - VO 1 34

Die bedingte Anweisung (2) Der else-zweig kann auch fehlen: if( Ausdruck ) { Anweisungsblock1 } Die bedingte Anweisung erlaubt es, den Programmablauf von Bedingungen abhängig zu machen. In fast allen Problemstellungen müssen bedingte Anweisungen verwendet werden. 11.10.2018 IT I - VO 1 35

Die bedingte Anweisung (3) Verschachtelte if-anweisungen: if( Ausdruck1 ) { Anweisungsblock1 } else if (Ausdruck2 ) { Anweisungsblock2 } else { Anweisungsblock3 } Äquivalent zu: if( Ausdruck1 ) { Anweisungsblock1 } else { if (Ausdruck2 ) { Anweisungsblock2 } else { Anweisungsblock3 } } 11.10.2018 IT I - VO 1 36

Logische Operatoren! (Negation), & (Und), (Oder), &&, Mit den logischen Operatoren können Ausdrücke vom Datentyp boolean verknüpft werden. Bei komplizierteren Ausdrücken ist auf korrekte und ausreichende Klammernsetzung zu achten. a1 a2!a1 a1&a2 a1 a2 true true false true true true false false false true false true true false true false false true false false 11.10.2018 IT I - VO 1 37

Interaktion zwischen Objekten Eine Methode eines Objektes kann eine Methode eines anderen Objektes (oder auch eine eigene Methode) aufrufen. Dazu muss das fremde Objekt zugreifbar sein. Z.B. ist ein Auto über das Attribut versauto in KfzPolizze zugreifbar (siehe Beispiel im Skriptum). 11.10.2018 IT I - VO 1 38

Aufruf von Objektmethoden Eine Methode eines Objektes kann eine Methode eines anderen Objektes (oder auch eine eigene Methode) aufrufen. Methodenaufruf: objektname.methodenname(parameterwerte) 11.10.2018 IT I - VO 1 39

Lokale Variablen In Methoden können lokale Variablen definiert werden. Diese dienen meist zum Speichern von Zwischenergebnissen oder Hilfswerten. Einer lokalen Variable ist immer ein Datentyp zugeordnet. 11.10.2018 IT I - VO 1 40

Zuweisung (in Java) Durch eine Zuweisung erhält ein Attribut oder eine lokale Variable einen Wert. Frühere Werte werden durch eine Zuweisung überschrieben. Syntax: Variable = Ausdruck; Variable ist ein Attribut oder eine lokale Variable. Durch den Ausdruck wird der Wert berechnet, der der Variablen zugewiesen wird. 11.10.2018 IT I - VO 1 41

return (in Java) Mittels return kann eine Methode einen Wert an die aufrufende Stelle zurückliefern. Eine Methode wird durch Ausführen eines return immer beendet. Syntax: return Ausdruck; Durch den Ausdruck wird der Wert berechnet, der zurückgeliefert wird. 11.10.2018 IT I - VO 1 42

Die Objekt-Referenz null Der Wert null einer Objekt-Referenz bedeutet, dass dem Attribut oder der Variablen kein Objekt zugewiesen ist. 11.10.2018 IT I - VO 1 43

Einige Java-Besonderheiten Strings können mit dem Operator + aneinander gehängt werden. Ausdrücke können über mehrere Zeilen reichen. Eine Zahl wird automatisch in einen String umgewandelt, wenn an dieser Stelle ein String erwartet wird: "0" + value "" + value 11.10.2018 IT I - VO 1 44

Konzepte der OOP (5) Datenkapselung: Die Attribute von Objekten sollen von außen nicht direkt zugreifbar sein. Attribute werden daher mit dem Vermerk private versehen. Lesende (get-) und verändernde (set-) Methoden werden verwendet, um den Zugriff zu gewährleisten. Dadurch kann die Integrität der Attributwerte sichergestellt werden. (Unerwünschte/unbeabsichtigte Veränderungen sind nicht so leicht möglich.) 11.10.2018 IT I - VO 1 45

Beispiel zur Sichtbarkeit An automobile consists of several parts and pieces and is capable of doing many useful things. Awareness of the accelerator pedal, the brake pedal, and the steering wheel is important to the driver. Awareness of the fuel injectors, the automatic braking control system, and the power steering pump is not important to the driver. 11.10.2018 IT I - VO 1 46

Pakete in Java Java-Projekte können durch Pakete (packages) strukturiert werden. Zusammengehörige Klassen können zusammengefasst werden. Ihre Sichtbarkeit nach außen kann definiert werden. 11.10.2018 IT I - VO 1 47

Sichtbarkeiten in Java private Attribute und Methoden sind außerhalb der Klasse, in der sie definiert sind, nicht zugreifbar/sichtbar. ohne visibility modifier Methoden sind von allen Klassen desselben Paketes zugreifbar. public Methoden sind auch aus Klassen in anderen Paketen zugreifbar. 11.10.2018 IT I - VO 1 48

BlueJ Debugger Mit Hilfe des Debuggers kann der Programmablauf und die Veränderung der Attribut- und Variablenwerte verfolgt werden. Der Debugger wird durch das Setzen von Breakpoints in Methoden (und Konstruktoren) aktiviert. 11.10.2018 IT I - VO 1 49

Java Konventionen Konventionen dienen der Übersichtlichkeit und Lesbarkeit der Programme. In den Übungen können die Konventionen automatisch geprüft werden. 11.10.2018 IT I - VO 1 50

Java-Konventionen für die Übungen Klassennamen beginnen mit einem Großbuchstaben. Attribut-, Methoden-, Parameternamen und lokale Variablen beginnen mit einem Kleinbuchstaben. Einrückungsstufen (bei Klassendefinitionen, Konstruktoren, Methoden) sind genau vier Leerzeichen. Eine Einrückungsstufe enden mit einer schließenden geschwungenen Klammer }, die nicht mehr eingerückt wird. Alle Attribute sind private. 11.10.2018 IT I - VO 1 51

Dokumentation Für das Verständnis von (fremden) Programmen ist besonders die verbale Beschreibung von Klassen und Methoden wichtig. In Java stehen dafür die Javadoc-Kommentare zur Verfügung. Aus diesen kann automatisch eine Dokumentation des Programms generiert werden. 11.10.2018 IT I - VO 1 52

Syntax von Kommentaren Javadoc: /** * Kommentar */ Weitere Kommentare: /* * Kommentar */ oder einzeilig: /* Kommentar */ // Kommentar 11.10.2018 IT I - VO 1 53

Zu ÜBeispielen/Tests: Angabe verstehen Angabe: Schreiben Sie Klasse Auto mit Konstruktor Auto(int ps, String kennzeichen), der ein Auto mit ps PS und Kennzeichen kennzeichen erstellt. Zu schreibende Klasse muss natürlich entsprechende Attribute haben! 11.10.2018 IT I - VO 1 54