Institut für Programmierung und Reaktive Systeme Java 1 Markus Reschke 06.10.2014 Organisatorisches Arbeitsablauf Hello! Ü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 Markus Reschke | Java 1 | 2 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! 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 Markus Reschke | Java 1 | 3 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! 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)) Markus Reschke | Java 1 | 4 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! 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) Markus Reschke | Java 1 | 5 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! 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) Markus Reschke | Java 1 | 6 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! Eingabe des Programmcodes Erstellen einer Textdatei mit dem Programmcode Tipp: Texteditor auf UTF-8 umstellen, erspart Ärger mit Umlauten! Markus Reschke | Java 1 | 7 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! 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 Markus Reschke | Java 1 | 8 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! 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 Markus Reschke | Java 1 | 9 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! Hello World! 1 2 3 4 5 public class Hello { public static void main ( String [] args ) { System . out . println ( " Hello World ! " ) ; } } Hello.java 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. Markus Reschke | Java 1 | 10 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! Demo: VM, Hello Live in der Vorlesung Demo: Vorführung der Lubuntu-Vorkurs-VM, Hello World Markus Reschke | Java 1 | 11 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! 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 erstmal so übernehmen Markus Reschke | Java 1 | 12 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! 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) Markus Reschke | Java 1 | 13 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! Java kann auch Rechnen 1 2 3 4 5 6 7 8 9 10 11 12 13 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) ; } } Rechnen.java Markus Reschke | Java 1 | 14 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! Demo: Rechnen mit Java Live in der Vorlesung Demo: Java als Taschenrechner Markus Reschke | Java 1 | 15 Institut für Programmierung und Reaktive Systeme Organisatorisches Arbeitsablauf Hello! Überblick und Ausblick Die Sprache Java Arbeitsablauf Hello World! main-Methode als Ausgangspunkt Ausgabe mit Java Java als Taschenrechner Demo: Lubuntu-VM, Arbeitsablauf, Rechnen mit Java Morgen: Ausdrücke, Variablen, Datentypen Markus Reschke | Java 1 | 16 Institut für Programmierung und Reaktive Systeme