Institut für Programmierung und Reaktive Systeme Vorkurs Informatik WiSe 16/17 Java – Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 2 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Überblick Einführung in die Programmierung zur Vereinfachung des Einstiegs ins Studium Erstellung von ausführbaren Programmen für den Computer Denk- und Vorgehensweisen beim Programmieren Inhalte: Hello World Datentypen Ausdrücke Variablen Arrays Objektorientierte Programmierung Rekursion 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 3 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Ablaufplan 04.10 Main-Methode und Ausgaben 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Ablaufplan 04.10 Main-Methode und Ausgaben 05.10 Ausdrücke, Variablen und Eingaben 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Ablaufplan 04.10 Main-Methode und Ausgaben 05.10 Ausdrücke, Variablen und Eingaben 06.10 Schleifen und Arrays 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Ablaufplan 04.10 Main-Methode und Ausgaben 05.10 Ausdrücke, Variablen und Eingaben 06.10 Schleifen und Arrays 07.10 Beispiele 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Ablaufplan 04.10 Main-Methode und Ausgaben 05.10 Ausdrücke, Variablen und Eingaben 06.10 Schleifen und Arrays 07.10 Beispiele 10.10 Methoden 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Ablaufplan 04.10 Main-Methode und Ausgaben 05.10 Ausdrücke, Variablen und Eingaben 06.10 Schleifen und Arrays 07.10 Beispiele 10.10 Methoden 11.10 Rekursion 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Ablaufplan 04.10 Main-Methode und Ausgaben 05.10 Ausdrücke, Variablen und Eingaben 06.10 Schleifen und Arrays 07.10 Beispiele 10.10 Methoden 11.10 Rekursion 12.10 Objektorientierte Programmierung 13.10 Objektorientierte Programmierung 14.10 Objektorientierte Programmierung 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Die Java-Programmiersprache Ursprünglich entwickelt von Sun Microsystems Gehört nun zu Oracle Plattformunabhängig Kompilierte Sprache Objektorientiert Kompilierte Programme werden auf einer virtuellen Maschine ausgeführt 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 5 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Arbeitsumgebung Um Java-Programme zu schreiben, wird folgende Softwareausstattung benötigt Ein Text-Editor Notepad++ Vim Emacs Sublime Text Alternativ: Eine integrierte Entwicklungsumgebung Intellij IDEA Netbeans Eclipse Das Java Development Kit (JDK) (nicht zu verwechseln mit der Java Runtime Edition (JRE)) 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 6 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Arbeitsablauf 1. Planung Analyse des Problems Analyse der Anforderungen an die Lösung Benötigte Datenobjekte Laufzeitumgebung Mögliche Ansätze 2. Programmierung Programm wird geschrieben Für kompilierte Sprachen: Kompilieren des Programms Ausführen des Programms 3. Testen Macht das Programm, was es soll? Zwischen den Phasen wird hin und her gewechselt, je nach Entwicklungsmodell (siehe Software Engineering 1) 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 7 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Programmerstellung mit Java 1. Erstellen einer Textdatei mit dem Programmcode 2. Der Programmcode wird in ausführbaren Code übersetzt (Befehl: javac Quelldateien) 3. Das Programm wird auf der Java Virtual Machine (JVM) ausgeführt (Befehl: java Klassenname) 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Eingabe des Programmcodes Erstellen einer Textdatei mit dem Programmcode Tipp: Texteditor auf UTF-8 umstellen, erspart Ärger mit Umlauten! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 9 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Kompilieren des Java-Codes Programmcode nicht direkt ausführbar Übersetzung von Programmcode zu ausführbarem Code für die JVM Wird Bytecode genannt Erzeugt Bytecode in .class-Dateien javac Quelldateien z. B. javac Hello.java 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 10 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Ausführen des Java-Codes Bytecode wird auf der JVM ausgeführt Ausführung startet in der main-Methode java Klassenname z.B. java Hello 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 11 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 12 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Hello World! public class Hello { public static void main( String [] args) { System .out. println ("Hello World!"); } } Programm besteht aus mindestens einer Klasse Klassenname steht hinter class Dateiname muss Klassenname + .java sein main-Methode ist Ausgangspunkt für die Ausführung Programm führt Folge von Anweisungen aus, von oben nach unten Anweisungen enden mit einem Semikolon (;) Aufruf von System.out.println() gibt etwas aus. 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 13 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Demo: VM, Hello Live in der Vorlesung Demo: Vorführung der Ubuntu-Mate-Vorkurs-VM, Hello World 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 14 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Die main-Methode Ausführung startet mit der ersten Anweisung der main-Methode public static void main(String[] args) Muss in einer Klasse stehen Signatur wird verständlicher, sobald wir Methoden behandeln Bis dahin: Programmgerüst mit Klasse und main-Methode erst mal übernehmen 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 15 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Ausgeben von Text System.out.println("Text") gibt Text aus und macht am Ende einen Zeilenumbruch System.out.print("Text") gibt Text aus und macht am Ende keinen Zeilenumbruch Wir können "Text" auch durch eine Zahl ersetzen: System.out.println(42) 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 16 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Java kann auch Rechnen public class Rechnen { public static void main( String [] args) { System .out. println (1 + 1); System .out. println (2 * 2.5); System .out. println (4 - 0.5); System .out. println (4.0 / 3); System .out. println (4 / 3); // Warum 1? System .out. println (7 % 3); // Was wird hier berechnet ? System .out. println (8 % 3); // Was wird hier berechnet ? System .out. println (9 % 3); // Was wird hier berechnet ? System .out. println (1 + 2 * 2 / 3); } } 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 17 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Demo: Rechnen mit Java Live in der Vorlesung Demo: Java als Taschenrechner 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 18 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Überblick und Ausblick Die Sprache Java Arbeitsablauf Hello World! main-Methode als Ausgangspunkt Ausgabe mit Java Java als Taschenrechner Demo: Ubuntu-Mate-VM, Arbeitsablauf, Rechnen mit Java Morgen: Ausdrücke, Variablen, Datentypen 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 19 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Übungen Ab 14:00 bis 17:00 Theorie Werkzeuge (Unix) Programmieren (Java) Selbst aufteilen! Räume: IZ 161 Theorie IZ G40 Rechnerraum IZ 359 Rechnerraum IZ 443 Rechnerraum (nur Programmieren) IZ 251 Laptopgruppe IZ 305 Laptopgruppe 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 20 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme Danke Vielen Dank für Ihre Aufmerksamkeit! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 21 Vorkurs Informatik WiSe 16/17 Institut für Programmierung und Reaktive Systeme