Institut für Programmierung und Reaktive Systeme Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 2 Vorkurs Informatik WiSe 15/16 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 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 3 Vorkurs Informatik WiSe 15/16 Institut für Programmierung und Reaktive Systeme Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4 Vorkurs Informatik WiSe 15/16 Institut für Programmierung und Reaktive Systeme Die Java-Programmiersprache Ursprünglich entwickelt von Sun Microsystems Gehört nun zu Oracle Platformunabhängig Kompilierte Sprache Objektorientiert Kompilierte Programme werden auf einer virtuellen Maschine ausgeführt 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 5 Vorkurs Informatik WiSe 15/16 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)) 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 6 Vorkurs Informatik WiSe 15/16 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 hergewechselt, je nach Entwicklungsmodell (siehe Software Enginneering 1) 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 7 Vorkurs Informatik WiSe 15/16 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) 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8 Vorkurs Informatik WiSe 15/16 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! 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 9 Vorkurs Informatik WiSe 15/16 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 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 10 Vorkurs Informatik WiSe 15/16 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 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 11 Vorkurs Informatik WiSe 15/16 Institut für Programmierung und Reaktive Systeme Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 12 Vorkurs Informatik WiSe 15/16 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 println() auf System.out.println() gibt Text auf der Standardausgabe aus. 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 13 Vorkurs Informatik WiSe 15/16 Institut für Programmierung und Reaktive Systeme Demo: VM, Hello Live in der Vorlesung Demo: Vorführung der Xubuntu-Vorkurs-VM, Hello World 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 14 Vorkurs Informatik WiSe 15/16 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 behandelt haben Bis dahin: Programmgerüst mit Klasse und main-Methode erst mal so übernehmen 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 15 Vorkurs Informatik WiSe 15/16 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) 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 16 Vorkurs Informatik WiSe 15/16 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); } } 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 17 Vorkurs Informatik WiSe 15/16 Institut für Programmierung und Reaktive Systeme Demo: Rechnen mit Java Live in der Vorlesung Demo: Java als Taschenrechner 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 18 Vorkurs Informatik WiSe 15/16 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: Xubuntu-VM, Arbeitsablauf, Rechnen mit Java Morgen: Ausdrücke, Variablen, Datentypen 12.10.2015 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 19 Vorkurs Informatik WiSe 15/16 Institut für Programmierung und Reaktive Systeme