1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von...

31
1 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

Transcript of 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von...

Page 1: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

1 1

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

Page 2: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

2 2

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“

Page 3: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

3 3

Programmablauf:Zuerst Kompilieren, dann Interpretieren

.java-Datei(Quelltext, engl.:

Source code)

.java-Datei(Quelltext, engl.:

Source code)

.class-Datei.class-Datei

CompilierenInterpretieren

Page 4: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

4 4

Schritte bis zum Start eines Programms

1. Erstellung des Quelltextes als Textdatei mit der Dateiendung .java Das Programm wird in den Rechner eingegeben.

2. Kompilierung des Quelltextes in Java-Bytecode Das „menschenlesbare“ Programm wird in ein

„maschinenlesbares“ Programm übersetzt.

3. Interpretieren des Java-Bytecodes durch die sogenannte Java Virtual Machine (JVM) Das Programm wird vom Computer ausgeführt.

Page 5: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

5 5

Werkzeuge

• Java Developer Kit J2SDK 1.4– Java-Compiler javac.exe

zum Übersetzen von Quelltexten in Java-Bytecode

– Java-Interpreter java.exezur Ausführung von Java-Bytecode-Programmen

– Applet-Betrachter appletviewer.exezum Ausprobieren von Java-Applets

• Einfacher Editor (z.B. Java-Editor)– Editor zur Erstellung von Quelltexten

– Automatisches Aufrufen des Compilers und Interpreters

– Debugger zur Fehlersuche

Page 6: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

6 6

Das erste Java-Programm: „Hello World“

Programm „HelloWorld.java“

class HelloWorld {

public static void main (String args[]) {

System.out.println("Hallo Welt!");

}

}

Ausgabe:

Hallo Welt!

.java-DateiQuelltext, engl.: Source code

.java-DateiQuelltext, engl.: Source code

Page 7: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

7 7

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 */

Page 8: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

8 8

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 */

Beispielprogramm mit Kommentaren

Ausgabe:

50

Page 9: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

9 9

Ausgabe einer Visitenkarte

Ausgabe einer Visitenkarte auf dem Bildschirm

*********************************** * * * Vorname Nachname * * BERUFSBEZEICHNUNG * * STANDORT * * * ***********************************

Page 10: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

10 10

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 *"); System.out.println("* *"); System.out.println("*********************************");}

}

Page 11: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

11 11

Übersicht

• Struktur von Java-Programmen– Aufbau eines Java-Programms

– Sprachelemente

• Variablen und primitive Datentypen– Wertzuweisung

• Ausdrücke und Operatoren

Page 12: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

12 12

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

Groß-/Kleinschreibung relevant!

z.B. Visitenkarte visitenkarte

Page 13: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

13 13

Erläuterung am Programm Rechnen.java

KommentarKommentar

KlasseKlasse

Rumpf der Methode mit 2 Anweisungen

Rumpf der Methode mit 2 Anweisungen

MethodeMethode

Programm „Rechnen.java“:

// 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);

}

}

Dateiname entsprichtdem Klassennamen(auch bzgl. Groß-/Kleinschreibung)

Dateiname entsprichtdem Klassennamen(auch bzgl. Groß-/Kleinschreibung)

Page 14: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

14 14

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 */

Page 15: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

15 15

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 */

Beispielprogramm mit Kommentaren

Ausgabe:

50

hier steht eine Formel, die

ausgerechnet wird(statt Text wie bisher)

Page 16: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

16 16

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.

Page 17: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

17 17

Anweisungen

• Methodenaufrufe z.B. System.out.println(„Hallo Welt“);

• Variablendeklarationen (z.B. int x;)

• Wertzuweisungen (z.B. x = 5;)

Page 18: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

18 18

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)

Page 19: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

19 19

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

Page 20: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

20 20

Erläuterung am Programm Rechnen.java

Programm „Rechnen.java“:

// 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 Kommentarzeilen3 Kommentarzeilen

BezeichnerBezeichner

SchlüsselwörterSchlüsselwörter

Page 21: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

21 21

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

Page 22: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

22 22

Primitive Datentypen

Typ Länge Bereich

byte 8 Bits -128 bis 127

short 16 Bits -32768 bis 32767

int 32 Bits -2147483648 bis 2147483647

long 64 Bits noch viel größer als int

float 32 Bits +/- 3.4E+38 (8 Stellen genau)

double 64 Bits +/- 1.8E+308 (17 Stellen genau)

char 16 Bits 65536 verschiedene Zeichen

boolean 1 Bit true oder false

Ganze Zahlen

Komma-zahlen

Buchstabe

Page 23: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

23 23

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 wiechar zeichen_a;char zeichen_b;

int i;int j; int k;

Page 24: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

24 24

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.

Page 25: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

25 25

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

Page 26: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

26 26

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: ( )

Page 27: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

27 27

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)

Page 28: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

28 28

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)

Page 29: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

29 29

Ü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.

Page 30: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

30 30

Ü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%?

Page 31: 1 Allgemeines zu Java Universelle, objektorientierte Programmiersprache –Konzepte geerbt von Simula, Smalltalk, C++ –Syntax angelehnt an C und C++ Große.

31 31

Ü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)