Java Programmierung Grundlagen

Ähnliche Dokumente
PHP Programmierung. Seminarunterlage. Version 1.02 vom

WebSphere Application Server Installation

JSP und Servlet Programmierung

Java Performance Tuning

Big Data Informationen neu gelebt

IBM DB2 für Linux/Unix/Windows Monitoring und Tuning

Apache HTTP Server Administration

Tomcat Konfiguration und Administration

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Objektorientierte Programmierung in Java

PHP Programmierung. Seminarunterlage. Version 1.07 vom

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

Oracle Backup und Recovery

Objektorientierung in Oracle

MySQL Administration. Seminarunterlage. Version 3.02 vom

Grundkurs Programmieren in Java

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

IT-Projektcontrolling

IBM Informix Dynamic Server Hochverfügbarkeits-Technologien unter Unix

Javakurs 2013 Objektorientierung

IBM Informix SQL. Seminarunterlage. Version vom

Linux Cluster mit Pacemaker und Heartbeat 3

Liste Programmieren Java Überblick

Javakurs zu Informatik I. Henning Heitkötter

Programmierung in Java

Einführung in die Java- Programmierung

Linux Hochverfügbarkeits-Cluster

Kurze Einführung in die Programmiersprache C++ und in Root

Oracle Cloud Control. Seminarunterlage. Version vom

Java-Schulung Grundlagen

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Objektorientierte Programmierung OOP

Einführung in die objektorientierte Programmierung

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Vorkurs C++ Programmierung

<Trainingsinhalt> C# programmieren

Modul 122 VBA Scribt.docx

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Gliederung der Folien

5. Tutorium zu Programmieren

Oracle Backup und Recovery mit RMAN

Einführung in die C++ Programmierung für Ingenieure

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik Was ist Informatik? Teilgebiete der Informatik 8

C# im Vergleich zu Java

Java Einführung Collections

Objektorientierte Programmierung. Kapitel 12: Interfaces

Java-Grundkurs für Wirtschaftsinformatiker

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

Tutorium Rechnerorganisation

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Programmieren in Java

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Java 6 lernen mit Eclipse

Knasmüller.book Seite vii Mittwoch, 28. März : vii. Inhaltsverzeichnis

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Objektbasierte Entwicklung

jetzt lerne ich PHP 5 & MySQL 4.1 Der schnelle Einstieg in die objektorientierte

Einführung in die Programmierung

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Java Einführung Packages

Java für C++ Programmierer

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

Vererbung & Schnittstellen in C#

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

C-Programmierung unter TOS ATARI ST

Michael Weigend. Python GE-PACKT

Das Einsteigerseminar Objektorientierte Programmierung in Java

Grundkurs Programmieren in Java

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Primitive Datentypen

Perl Programmierung Grundlagen

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Programmieren I. Kapitel 15. Ein und Ausgabe

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

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

Multimedia im Netz Wintersemester 2011/12

Grundkurs Programmieren in Java

Computeranwendung und Programmierung (CuP)

Innere Klassen in Java

Java lernen mit BlueJ

Visual C#.NET. Bearbeitet von Patrick A. Lorenz

Code-Erzeugung aus UML-Klassendiagrammen

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Grundkurs Programmieren in Java

Objektorientierte Programmierung

3 Objektorientierte Konzepte in Java

SCJP-Sun Certified Java Programmer

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java Einführung Operatoren Kapitel 2 und 3

Repetitorium Informatik (Java)

Grundkurs Programmieren in Java

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung

Programmieren Tutorium

Java als erste Programmiersprache

Transkript:

Seminarunterlage Version: 4.11 Version 4.11 vom 22. Dezember 2015

Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen. Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der jeweiligen Unternehmen. Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der weitergegeben oder benutzt werden. Die besitzt folgende Geschäftsstellen Adressen der Westernmauer 12-16 D-33098 Paderborn Tel.: (+49) 0 52 51 / 10 63-0 An der alten Ziegelei 5 D-48157 Münster Tel.: (+49) 02 51 / 9 24 35 00 Welser Straße 9 D-86368 Gersthofen Tel.: (+49) 08 21 / 507 492 0 Kreuzberger Ring 13 D-65205 Wiesbaden Tel.: (+49) 06 11 / 7 78 40 00 Wikingerstraße 18-20 D-51107 Köln Tel.: (+49) 02 21 / 8 70 61 0 Internet: http://www.ordix.de Email: training@ordix.de Seite 2 Version: 4.11

Inhaltsverzeichnis 1 Einführung in die Objektorientierung... 8 1.1 Wieso OO?... 9 1.2 Abstraktion... 10 1.3 Prozedurale Programmierung... 11 1.4 Objektorientierte Programmierung... 12 1.5 Objekte... 14 1.6 Klassen... 17 1.6.1 Klassen Vererbung... 19 1.6.2 Klassen Polymorphie... 23 1.6.3 Klassen - Abstrakte Klassen... 25 1.7 Instanz- und Klassenvariablen... 26 1.8 Instanz- und Klassenmethoden... 27 1.9 und was noch so folgt... 28 1.10 Entwurfsmuster... 29 1.11 UML - Use Case Diagramm... 30 1.12 UML-Klassendiagramm... 31 2 Grundlagen der Sprache... 32 2.1 Was ist Java?... 33 2.2 Java-Design Kriterien... 34 2.2.1 Einfach und objektorientiert... 34 2.2.2 Verteilt und Interpretiert... 36 2.2.3 Robust und Sicher... 37 2.2.4 Architekturneutral und portabel... 38 2.2.5 Hochleistungsfähig und Multithreaded... 39 2.2.6 Dynamisch... 40 2.3 Java Virtual Machine (JVM)... 41 2.4 Was macht die JVM... 42 2.5 Just-in-Time (JIT)-Compiler... 43 2.6.java und *.class-datei... 44 2.7 Java-Anwendungen... 45 2.8 Java-Applets... 46 2.9 Einfache Java-Anwendung... 47 2.10 Kompilieren und Starten einer Java-Anwendung... 48 2.11 Kommentare... 49 2.12 Programmiertools... 51 2.13 Zusammenfassung... 52 3 Variablen, Datentypen und Operatoren... 53 3.1 Variablendeklaration und initialisierung... 54 3.2 Variablennamen... 55 3.3 Reservierte Schlüsselwörter... 56 3.4 Variablentypen in Java... 57 3.5 Einfache (primitive) Datentypen... 58 3.6 Anmerkungen zu Literalen... 60 3.7 Arithmetische Operationen... 63 3.8 Zuweisungsoperatoren... 64 3.9 Umwandlungen und Casting... 65 3.10 Inkrement- und Dekrementoperatoren... 67 3.11 Vergleichsoperatoren... 68 3.12 Logische Operatoren... 69 3.13 Bitweise Operatoren... 70 3.14 instanceof-operator... 71 3.15 Zusammenfassung... 72 4 Ablaufsteuerung: if, switch, while, do while, for, for each... 73 4.1 Ablaufsteuerung in Java... 74 4.2 if-anweisung... 75 Version: 4.11 Seite 3

4.3 Verschachtelte if-anweisungen... 76 4.4 Alternative zur if-anweisung... 77 4.5 switch-anweisung... 78 4.6 while-schleife... 80 4.7 do...while-schleife... 81 4.8 for-schleife... 82 4.9 for each-schleife... 84 4.10 Geschachtelte Schleifen... 86 4.11 Verwendung von Enhanced for Loop... 89 4.12 break-anweisung... 91 4.13 continue-anweisung... 93 4.14 Zusammenfassung... 95 5 Klassen und Objekte... 96 5.1 Objektorientierung in Java... 97 5.2 Klassen... 98 5.3 Attribute und Methoden... 100 5.4 Syntax einer Klassendefinition... 101 5.5 Von Klassen zu Objekten... 102 5.6 new-operator... 103 5.7 Konstruktor... 104 5.8 Definition von Konstruktoren... 105 5.9 Zugriff auf Datentypen... 106 5.10 Equals und Hashcode... 110 5.11 this-referenz... 111 5.12 Instanzvariablen... 113 5.13 Instanzmethoden... 114 5.14 Eigenschaften von Methoden... 115 5.15 Beispiel Parameterübergabe... 117 5.16 return-anweisung... 118 5.17 Exkurs: Parameter als varargs... 119 5.18 Zusammenfassung... 122 6 Weiteres zu Klassen und Objekten... 123 6.1 Vererbung... 124 6.2 Überschreiben von Methoden... 127 6.3 Beispiel: Überschreiben... 128 6.4 super-zugriff auf Superklasse... 130 6.5 Beispiel: super... 131 6.6 static-klassenvariablen... 133 6.7 static-klassenmethoden... 134 6.8 Beispiel: static... 135 6.9 final-attribute... 137 6.10 Static Import Deklaration... 139 6.11 Vorrang-Regelung... 142 6.12 Nutzung von Static Import... 145 6.13 Pakete... 147 6.14 Einbinden von Paketen... 148 6.15 Finden von Paketen... 150 6.16 Erstellung eigener Pakete... 151 6.17 Zugriffsmodifikatoren in Java... 152 6.18 Garbage Collection... 155 6.19 finalize()-methode... 156 6.20 Zusammenfassung... 157 7 Abstrakte Klassen und Interfaces... 158 7.1 Abstrakte Klassen... 159 7.2 Abstrakte Methoden... 160 7.3 Abstrakte Klassen: Vererbung... 161 7.4 Wozu abstrakte Klassen... 163 Seite 4 Version: 4.11

7.5 Beispiel... 164 7.6 Verwendung als Typ... 165 7.7 Polymorphie... 166 7.7.1 Polymorphie: Beispiel mit abstrakten Klassen... 167 7.8 Interfaces... 168 7.8.1 Weiteres zu Interfaces... 169 7.8.2 Interfaces implementieren... 170 7.8.3 Methoden überschreiben... 171 7.8.4 Interfaces als Typ... 173 7.8.5 Interfaces als Typ, Beispiel... 174 7.8.6 Anwendungsbeispiel... 175 7.9 Zusammenfassung... 179 8 Array, String, StringBuilder, Wrapper, Auto(un)boxing... 180 8.1 Arrays... 181 8.1.1 Erzeugen von Array-Objekten... 183 8.1.2 Arrays einfacher Werte... 184 8.1.3 Multidimensionale Arrays... 185 8.1.4 Bemerkung zu multidimensionalen Arrays... 186 8.1.5 Weiteres zu Arrays... 187 8.2 Klasse String... 188 8.2.1 Einige String-Methoden... 189 8.2.2 Konkatenationsoperator für Strings... 190 8.2.3 Klasse StringBuilder... 191 8.2.4 Einige StringBuilder-Methoden... 192 8.3 Wrapper-Klassen für primitive Typen... 193 8.3.1 Beispiele mit der Klasse Integer... 194 8.4 Eigenschaften von Float und Double... 196 8.5 Boxing und Unboxing... 197 8.6 Manuelles vs. automatisches Boxing... 198 8.7 Autoboxing und Arrays speziell... 200 8.8 Nutzung von Auto(un)boxing... 202 8.9 Achtung: Referenzgleichheit... 203 8.10 Zusammenfassung... 205 9 Nützliche Klassen... 206 9.1 Klasse java.lang.math... 207 9.2 Klasse Random... 208 9.3 Beispiel mit Random-Objekt... 209 9.4 Klasse Runtime... 210 9.5 Beispiel: Externe Programme starten... 211 9.6 Beispiel: Freien Speicher ermitteln... 212 9.7 Klasse java.util.date... 213 9.8 Klasse java.text.format... 214 9.9 Klasse java.text.simpledateformat... 215 9.10 Interface java.util.calendar... 216 9.11 Interface java.util.calendar... 217 9.12 Zusammenfassung... 218 10 Collection Framework... 219 10.1 Was ist eine Collection?... 220 10.2 Architektur des Collection Frameworks... 221 10.3 Collection Framework Interfaces... 222 10.4 LinkedList... 223 10.5 ArrayList... 225 10.6 HashSet... 227 10.7 TreeSet... 229 10.8 HashMap... 231 10.9 TreeMap... 233 10.10 Interface Iterator... 235 Version: 4.11 Seite 5

10.11 Interface ListIterator... 236 10.12 Klasse Collections... 237 10.13 Algorithmen Sortieren... 238 10.14 Algorithmen Permutieren... 239 10.15 Algorithmen - Minimum & Maximum... 240 10.16 Algorithmen Suchen... 241 10.17 Algorithmen Datenmanipulation... 242 10.18 Synchronisierte Wrapper... 243 10.19 Nicht modifizierbare Wrapper... 244 10.20 Zusätzliche Funktionalität... 245 10.21 Einbindung bestehender Collections... 246 10.22 Aufwärts Kompatibilität... 247 10.23 Abwärts Kompatibilität... 248 11 Ausnahmebehandlung Exception Handling... 249 11.1 Ausnahme (Exception)... 250 11.2 Exception-Klassen... 251 11.3 Vererbungshierarchie... 252 11.4 Exception Handling... 254 11.5 Exception Handling Java 7... 258 11.6 finally-block... 259 11.7 Auswerten von Ausnahmen... 260 11.8 Auslösen von Ausnahmen... 262 11.9 Definition eigener Ausnahmen... 263 11.10 Tipps... 264 12 Input/Output... 266 12.1 Ein- und Ausgabe in Java... 267 12.2 Streams... 268 12.3 Wichtige Streams... 269 12.4 Klasse File... 271 12.5 Anlegen und Schreiben einer Datei... 272 12.6 Beispiel: Anlegen und Schreiben einer Datei... 273 12.7 Einlesen einer Datei... 274 12.7.1 Beispiel: Einlesen einer Datei... 275 12.8 Löschen einer Datei... 276 12.8.1 Beispiel: Löschen einer Datei... 277 12.9 Objekt Serialisierung... 278 12.10 Beispiel: Serialisierung eines Objekts... 280 12.11 Beispiel: Deserialisierung eines Objekts... 282 12.12 Neues I/O in (NIO)... 283 12.13 NIO, Buffer... 284 12.14 NIO, Beispiel: MappedByteBuffer... 285 12.15 NIO, Channel... 286 12.16 NIO 2... 287 12.17 NIO 2, Motivation... 288 12.18 NIO 2, Features... 289 12.19 Zusammenfassung... 290 13 Bibliotheken/Frameworks... 291 13.1 Klassenbibliotheken... 292 13.2 Frameworks... 293 13.3 Swing... 294 13.4 JavaServer Faces... 295 13.5 Weitere Frameworks... 296 13.6 Java Runtime, Enterprise Edition... 297 13.7 Einbinden von fremden Bibliotheken... 298 13.8 Erstellen einer eigenen Bibliothek... 299 13.9 Testen mit JUnit... 300 13.10 JUnit 3... 301 Seite 6 Version: 4.11

13.11 JUnit 4 Annotations... 303 14 Apache Subversion... 305 14.1 Was ist Apache Subversion (SVN)?... 306 14.2 Tag- und Branchkonzept... 307 14.3 Subversive Plugin für Eclipse... 308 14.4 Apache Subversion (SVN)... 309 Version: 4.11 Seite 7