Java und Eclipse Überblick Compiler, Bytecode, JVM ●Java Syntax Variablen Typen Kontrollstrukturen Arrays Klassen ●IDE Eclipse ●Übungen mit Eclipse ● Compiler, Bytecode, JVM (1) Compiler: übersetzt Sourcecode in Maschinencode Java Compiler: übersetzt Sourcecode in plattformunabhängigen Java Bytecode Java Virtual Maschine (JVM): führt Java Bytecode aus Compiler, Bytecode, JVM (2) Beispiele: HelloWorld.java (Sourcecode) Compilieren: javac HelloWorld.java Ausführen: java HelloWorld Example.jar (ausführbares Java Archiv) Ausführen: java -jar Example.jar Variablen Programmvariablen dienen zur Speicherung von Daten Vor dem ersten Gebrauch der Variablen muss der Typ festgelegt werden: int zahl; Zuweisung: setzt den Wert einer Variablen: zahl = 1; “=” nicht zu verwechseln mit Gleichheit!! Typen Java verfolgt das Konzept der strengen Typbindung Grundtypen: int, long, float, double, char, byte, short, boolean Objekttypen: beinhalten Objekte, nur Referenz gespeichert Kontrollstrukturen: Verzweigung if(Bedingung1){ Anweisung1; } else if(Bedingung2){ Anweisung2; } ... else{ AnweisungN; } Kontrollstrukturen: Schleifen (1) 1) while – do while(Bedingung); do{ Anweisung; } Die Anweisung wird ausgeführt so lange die Bedingung erfüllt ist. Kontrollstrukturen: Schleifen (2) 2) do – while do{ Anweisung; } while(Bedingung); Die Anweisung wird ausgeführt so lange die Bedingung erfüllt ist, aber mindestens ein mal Kontrollstrukturen: Schleifen (3) 3) for for(int i = 0; i < x; i++){ Anweisung; } Die Anweisung wird genau x mal ausgeführt Kontrollstrukturen: switch switch(variable){ case Wert1: Anweisung1; break; case Wert2: Anweisung2; break; ... default: AnweisungN; break; } Die Variable muss vom Typ int oder char sein Arrays Arrays sind Kollektionen desselben Typs mit festgelegter Größe. Der Inhalt des Arrays kann durch Indizieren mit ganzen Zahlen ausgewählt werden char[] vokal = {'a', 'e', 'i', 'o', 'u'}; oder int[][] matrix = new int[2][3]; matrix[0][1] = 1; Klassen public class HelloWorld{ public HelloWorld(){ //Konstruktor: wird bei Neuerzeugung //des Objekts aufgerufen } public static void main(String[] args){ System.out.println(“Hello World”); } ... } Methoden (1) public class Zahlen{ public void setZahl(int zahl){ this.zahl = zahl; } public int getZahl(){ return this.zahl; //return Typ muss zum //angegebenen Typ passen } private int zahl; } Methoden (2) Java ermöglicht Überladen von Methoden: public void setZahl(int zahl){ Anweisung1; } public void setZahl(float zahl){ Anweisung2; } Unterscheidung der beiden Methoden über Parameterliste Dokumentation ● ● ● ● http://java.sun.com/j2se/1.5.0/docs/api/ http://java.sun.com/j2se/1.4.2/docs/api/ Download http://java.sun.com/docs/index.html Google IDE Eclipse IDE = Integrated Development Environment: integriert Editor, Compiler, Laufzeitumgebung und Debugger Eclipse ist eine erweiterbare Plattform. Es werden viele verschiedene Plugins zur Verfügung gestellt, die sehr einfach zu installieren sind IDE Eclipse ● ● ● ● ● ● ● Bis einschließlich zur Version 2.1: als erweiterbare IDE konzipiert Seit Version 3.0 ist Eclipse selbst nur der Kern, der die einzelnen Plugins lädt, die dann die eigentliche Funktionalität zur Verfügung stellen (Rich Client Platform) Eclipse und Plugins sind vollständig in Java implementiert GUI-Framework zur Erstellung der grafischen Oberfläche: SWT SWT basiert auf den nativen GUI-Komponenten des jeweiligen Betriebssystems. => nicht plattformunabhängig, wird aber für 11 verschiedene Systeme und Architekturen bereitgestellt. Das frei verfügbare Eclipse SDK umfasst die Eclipse Platform, Werkzeuge zur Java-Entwicklung (Java Development Tools JDT) und die Umgebung zur Entwicklung von Eclipse-Plugins (Plug-in Development Environment PDE). Übungen mit Eclipse ● ● ● ● ● ● ● ● ● ● Schreiben einer Hello World Applikation im Editor Compilieren und Starten in der Konsole Anlegen eines neuen Projekts Schreiben einer Hello World Applikation in Eclipse Compilieren Starten einer Applikation Öffnen eines bereits vorhandenen Projekts Debuggen einer Applikation Wechseln der Perspektive Einstellungen eines Projekts ändern Anlegen eines neuen Projekts 1) File -> New -> Project... 2) Wähle Java Project 3) Klick auf Next 4) Projektnamen angeben 5) Create Project in workspace oder Create Project at external location 6) Finish Anlegen eines neuen Projekts: Source Folder 1) Im Package Explorer: rechter Mausklick auf das Projekt -> New -> Source Folder 2) Folder Namen angeben 3) Klick auf Finish Anlegen eines neuen Projekts: Package 1) Im Package Explorer: rechter Mausklick auf den Source Folder -> New -> Package 2) Package Namen angeben 3) Klick auf Finish Schreiben einer Hello World Applikation 1) Im Package Explorer: rechter Mausklick auf das Package -> New -> Class 2) Name: HelloWorld 3) Klick auf Finish 4) Die neue Klasse wird im Editor geöffnet. Nun codieren und speichern Compilieren 1) Klick auf Menüpunkt Project 2) Wenn “Build Automatically” nicht ausgewählt ist -> Klick auf “Build Project”. Starten einer Applikation (1) 1) Im Menüpunkt Run -> Run... wählen 2) Unter Configurations “Java Application” wählen 3) Klick auf New 4) Name frei wählen z.B. Hello World Applikation Starten einer Applikation (2) 5) Project wählen (Browse...) 6) Main Class wählen (Search) 7) Klick auf Run Öffnen eines bereits vorhandenen Projekts ● 1) File -> New -> Project... ● 2) Wähle Java Project ● 3) Klick auf Next ● 4) Projektnamen angeben ● 5) Create Project at external location => browse… ● 6) Finish Debuggen einer Applikation (1) Unter dem Menüpunkt Run -> Debug... wählen Rest gleich wie beim Starten einer Applikation Eclipse möchte nun in eine andere Ansicht (Perspective) wechseln -> zulassen Debuggen einer Applikation (2) Mit den Tasten F5, F6 und F7 in der Programmausführung navigieren F5: ein Schritt weiter, Funktionsaufrufe werden nachverfolgt F6: ein Schritt weiter, Funktionsaufrufe werden übersprungen F7: ein Schritt rückwärts Wechseln der Perspektive 1) Menüpunkt Window 2) Open Perspective 3) Java Projekteinstellungen ändern 1) Im Package Explorer: rechtsklick auf das Projekt -> Properties 2) Java Build Path ● Projects ● Java Library