Allgemeines zu Java Universelle, objektorientierte Programmiersprache Konzepte geerbt von Simula, Smalltalk, C++ Syntax angelehnt an C und C++ Große standardisierte Funktionsbibliotheken (z.B. Grafik, Fenster, Datenstrukturen uvm.) Plattformunabhängig (Windows, Linux, Mac, ...) Verschiedene Einsatzgebiete eigenständige Programme in Webseiten eingebettete Programme, sog. Applets
Internetseiten zu Java Firma Sun (Entwickler von Java): http://java.sun.com Java-Editor: http://www.bildung.hessen.de/abereich/inform/skii/ /material/java/editor.htm Oder: „googeln“ nach Begriff „Java-Editor“
Programmablauf: Zuerst Kompilieren, dann Interpretieren Compilieren Interpretieren .java-Datei (Quelltext, engl.: Source code) .class-Datei
Schritte bis zum Start eines Programms Erstellung des Quelltextes als Textdatei mit der Dateiendung .java Das Programm wird in den Rechner eingegeben. Kompilierung des Quelltextes in Java-Bytecode Das „menschenlesbare“ Programm wird in ein „maschinenlesbares“ Programm übersetzt. Interpretieren des Java-Bytecodes durch die sogenannte Java Virtual Machine (JVM) Das Programm wird vom Computer ausgeführt.
Werkzeuge Java Developer Kit J2SDK 1.4 Java-Compiler javac.exe zum Übersetzen von Quelltexten in Java-Bytecode Java-Interpreter java.exe zur Ausführung von Java-Bytecode-Programmen Applet-Betrachter appletviewer.exe zum Ausprobieren von Java-Applets Einfacher Editor (z.B. Java-Editor) Editor zur Erstellung von Quelltexten Automatisches Aufrufen des Compilers und Interpreters Debugger zur Fehlersuche
Das erste Java-Programm: „Hello World“ .java-Datei Quelltext, engl.: Source code Programm „HelloWorld.java“ class HelloWorld { public static void main (String args[]) { System.out.println("Hallo Welt!"); } Ausgabe: Hallo Welt!
Kommentare im Programmquelltext Zur Erhöhung der Lesbarkeit sollten alle Programmteile durch Kommentare näher erläutert werden. Kommentare werden vom Compiler überlesen Einzeilige Kommentare Einleitung durch // Beendigung durch Zeilenende Beispiel: // Dies ist ein Kommentar Längere Kommentare Einleitung mit /* Beendigung durch */ Beispiel: /* Dies ist ein mehrzeiliger Kommentar */
Beispielprogramm mit Kommentaren Programm Rechnen.java // Programm zur Berechnung von 14+12*3 class Rechnen { // Ein einzeiliger Kommentar public static void main (String args[]) { System.out.println(14+12*3); } } /* Hier beginnt ein Kommentar, der sich über mehrere Zeilen erstrecken kann */ Ausgabe: 50
Ausgabe einer Visitenkarte Ausgabe einer Visitenkarte auf dem Bildschirm *********************************** * * * Vorname Nachname * * BERUFSBEZEICHNUNG * * STANDORT * * * ***********************************
Lösung: Folge von Ausgabe-Anweisungen Programm „Visitenkarte.java“ class Visitenkarte { public static void main (String args[]) { System.out.println("*********************************"); System.out.println("* *"); System.out.println("* Vorname Nachname *"); System.out.println("* BERUFSBEZEICHNUNG *"); System.out.println("* STANDORT *"); }
Übersicht Struktur von Java-Programmen Aufbau eines Java-Programms Sprachelemente Variablen und primitive Datentypen Wertzuweisung Ausdrücke und Operatoren
Struktur von Java-Programmen Programme bestehen aus Klassen (class) im Beispiel: nur eine Klasse "Visitenkarte" Klassen bestehen aus Methoden im Beispiel: nur eine Methode „main“ Methoden bestehen aus einer Folge von Anweisungen, getrennt durch Strichpunkt im Beispiel: System.out.println(...); Genau eine Klasse hat die Methode "main" (Hauptprogramm) Jede Klasse muss in einer eigenen, gleichnamigen Quelltextdatei definiert werden (.java) daher: pro Klasse eine Datei und umgekehrt Groß-/Kleinschreibung relevant! z.B. Visitenkarte visitenkarte
Erläuterung am Programm Rechnen.java // Errechnet 12+32*4 und gibt es aus. class Rechnen { public static void main (String args[]) { System.out.println("12+32*4 ergibt"); System.out.println(12+32*4); } Kommentar Dateiname entspricht dem Klassennamen (auch bzgl. Groß-/ Kleinschreibung) Rumpf der Methode mit 2 Anweisungen Klasse Methode
Kommentare im Programmquelltext Zur Erhöhung der Lesbarkeit sollten alle Programmteile durch Kommentare näher erläutert werden. Kommentare werden vom Compiler überlesen Einzeilige Kommentare Einleitung durch // Beendigung durch Zeilenende Beispiel: // Dies ist ein Kommentar Längere Kommentare (auch über mehrere Zeilen) Einleitung mit /* Beendigung durch */ Beispiel: /* Dies ist ein Kommentar */
Beispielprogramm mit Kommentaren Programm Rechnen.java // Programm zur Berechnung von 14+12*3 class Rechnen { // Ein einzeiliger Kommentar public static void main (String args[]) { System.out.println(14+12*3); } } /* Hier beginnt ein Kommentar, der sich über mehrere Zeilen erstrecken kann */ Ausgabe: 50 hier steht eine Formel, die ausgerechnet wird (statt Text wie bisher)
Einfache Java-Programme bestehen aus genau einer Klasse mit einer Methode main, die das Hauptprogramm enthält. Die Methode main besteht aus einer Folge von Befehlen (Anweisungen), getrennt durch Strichpunkt.
Anweisungen Methodenaufrufe z.B. System.out.println(„Hallo Welt“); Variablendeklarationen (z.B. int x;) Wertzuweisungen (z.B. x = 5;)
Variablen Variablen sind Platzhalter für Werte Variablen dienen z.B. zur Aufnahme von Werten, die von vornherein nicht bekannt sind Aufnahme von Ergebnissen von Berechnungen Name der Variable frei wählbar (Einschränkungen auf nächster Folie => „Bezeichner“) Name der Variablen soll Bedeutung widerspiegeln (erhöht Lesbarkeit des Programms)
Bezeichner Bezeichner sind vom Programmierer zu vergebene Namen für Klassen, Methoden, (Pakete) Variablen Syntax: Beliebig lange Zeichenfolge aus Buchstaben (Umlaute und ß sollte man vermeiden) Ziffern Dem Dollarzeichen $ oder dem Unterstrich _ Bezeichner müssen mit einem Buchstaben anfangen Keine Leerzeichen
Erläuterung am Programm Rechnen.java // Errechnet 12+32*4 und gibt das Ergebnis aus. // Autor: T. Kolbe class Rechnen { public static void main (String args[]) { System.out.println("12+32*4 ergibt"); System.out.println(12+32*4); } 3 Kommentarzeilen Bezeichner Schlüsselwörter
Variablendeklaration für Variablen muss angegeben werden, von welchem Typ (z. B. ganze Zahl, Kommazahl, Buchstabe) sie sind dies wird als Deklaration bezeichnet Variablendeklaration: Typ Variablenbezeichner; Beispiele: int anzahl; // Variable anzahl ist eine ganze Zahl char Endbuchstabe; // Variable Endbuchstabe ist ein Buchstabe double Winkel; // Variable Winkel ist eine Kommazah
Primitive Datentypen Ganze Zahlen Komma- zahlen Buchstabe
Alternative: Deklaration mehrerer Variablen gleichen Typs zugleich Deklaration mehrere Variablen gleichen Typs in einem Schritt (Variablen V durch Komma getrennt): Typ V1 ,..., Vn ; Beispiele: int i, j, k; ist dasselbe wie char zeichen_a, zeichen_b; ist dasselbe wie char zeichen_a; char zeichen_b; int i; int j; int k;
Variablen: Wertzuweisung Wertzuweisung: Variable = Ausdruck; Beispiele: i = 34; j = i+2; meinezahl = 3.1415; Deklaration und Wertzuweisung in einem Schritt: int i = 34+j; double meinezahl = 3.1412; Die erste Wertzuweisung zu einer Variablen wird auch als ihre Initialisierung bezeichnet.
Ausdrücke Ausdruck steht auf der rechten Seite einer Wertzuweisung Beispiele: 3 - 7 liefert Wert -4 i liefert Wert der Variablen i (i muss Wert haben) 1 + i liefert Summe von 1 und dem Wert der Variablen i sin(90) liefert Sinus des Winkels 90 Grad Der Wert eines Ausdrucks wird als Rückgabewert bezeichnet Der Rückgabewert besitzt einen Typ, den Rückgabetyp z.B. double bei sin(90), int bei 3 - 7
Einfache und komplexe Ausdrücke Einfache Ausdrücke sind Konstanten (z.B. 3.9), Variablen oder Funktionsaufrufe Komplexe Ausdrücke entstehen durch Verknüpfung von Ausdrücken mittels Operatoren (+,-,*,sin, ...) Beispiele für komplexe Ausdrücke: 3+4*i // i ist eine Variable (2.0 + Math.sin(3.1)) Reihenfolge der Auswertung durch Klammern: ( )
Arithmetische Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ byte, short, int oder long (ganzzahlig) oder float oder double („Kommazahl“), so wird dieser als arithmetischer Ausdruck bezeichnet. Die Operanden von arithmetischen Operatoren sollten im Regelfall vom selben Typ sein Beispiele: 4+2 (int) 5.21 / 1.0 (double)
Arithmetische Operatoren +, -, *, / : Addition, Subtraktion, Multiplikation, Division Division: ganzzahlig, wenn beide Operanden ganzzahlig sind, sonst float/double int i = 9 / 4; //Ergebnis: i ist 2 ! double d = 3.6 / 10; //d ist 0.36 Modulo-Operator % : Rest der Ganzzahldivision int i = 5; int j = i % 3; // j ist 2 (Rest von 5:3)
Übung 1 Schreiben Sie ein Programm, das den Umfang und den Flächeninhalt eines Kreises mit Radius r (float-Variable) berechnet (pi 3.14159). Die Ausgabe sollte etwa folgendermaßen aussehen: Ein Kreis mit Radius 5.0 hat den Umfang 31.4159 und den Flächeninhalt 78.53975.
Übung 2 Sie haben eine Summe von 18432 Euro gespart, die Sie anlegen möchten. Rechnen Sie aus, wieviel Geld Sie bei einem jährlichen Zinssatz von 2,7% am Ende des ersten, zweiten, dritten, vierten und fünften Jahres insgesamt zur Verfügung haben. Geben Sie für jedes Jahr den entsprechenden Betrag aus. Wie sind die Ergebnisse bei einer Anlagesumme von 15158 EUR und einem jährlichen Zinssatz von 3,1%?
Temperaturumrechnung Übung 3 Temperaturumrechnung Schreiben Sie ein Programm, das eine Temperatur von Grad Celsius in Grad Fahrenheit umrechnet, das Ergebnis in einer Variablen speichert und ausgibt. Analog soll von Fahrenheit nach Celsius umgerechnet werden. Formel zur Umrechnung von Fahrenheit nach Celsius: Celsius = 5/9 * (Fahrenheit - 32)