0% fanden dieses Dokument nützlich (0 Abstimmungen)
42 Ansichten65 Seiten

V02 - Java

Das Dokument behandelt die Grundlagen der Programmierung mit Java, einschließlich der Eigenschaften der Sprache, Variablendeklaration, Kontrollstrukturen wie Bedingungen und Schleifen sowie die Struktur von Java-Programmen. Es werden wichtige Konzepte wie die Java-Entwicklungsumgebung, die Funktionsweise des Java-Compilers und die Ausführung von Programmen erläutert. Zudem werden Beispiele für einfache Programme und deren Struktur gegeben, um das Verständnis der Programmierlogik zu fördern.

Hochgeladen von

herbert.mueller19991
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
42 Ansichten65 Seiten

V02 - Java

Das Dokument behandelt die Grundlagen der Programmierung mit Java, einschließlich der Eigenschaften der Sprache, Variablendeklaration, Kontrollstrukturen wie Bedingungen und Schleifen sowie die Struktur von Java-Programmen. Es werden wichtige Konzepte wie die Java-Entwicklungsumgebung, die Funktionsweise des Java-Compilers und die Ausführung von Programmen erläutert. Zudem werden Beispiele für einfache Programme und deren Struktur gegeben, um das Verständnis der Programmierlogik zu fördern.

Hochgeladen von

herbert.mueller19991
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Programmierung,

Datenstrukturen und
Algorithmen
Dr. Christian Schönberg
Java
Lernziele
▪ Eigenschaften, Terminologie und Arbeitsweise von Java
▪ Variablendeklaration, Wertzuweisung
▪ Blöcke
▪ Bedingungen (if)
▪ Schleifen (while)
▪ Kommentare
▪ Typische Fehler

3
Was ist Java?
▪ Imperative, objekt-orientierte Programmiersprache
▪ Sammlung von Entwicklungswerkzeugen
▪ Klassenbibliothek
▪ Begriffe
▪ Java SE/EE: Standard Edition/Enterprise Edition
▪ JRE: Java Runtime Environment (zum Ausführen)
▪ JDK: Java Development Kit (für Entwickler)
▪ JVM: Java Virtual Machine (siehe Compiler/Interpreter)

4
Funktionsweise

Java Programm
(*.java)

Java
Compiler

Java Bytecode
(*.class)

JVM für JVM für JVM für



Windows Linux OSX

Windows Linux OSX


Programm- Programm- Programm-

ausführung ausführung ausführung
5
Eigenschaften von Java
▪ einfach ▪ verteilt
▪ objekt-orientiert ▪ parallel
▪ plattformunabhängig ▪ dynamisch
▪ robust ▪ statische Typprüfung
▪ sicher ▪ weit verbreitet
▪ schnell ▪ kostenlos

6
Programm-Vorlage

public class <KLASSEN-NAME> {

public static void main(String[] args) {


<CODE>

}

→ speichern als <KLASSEN-NAME>.java

7
Beispielprogramm

public class Factorial {

public static void main(String[] args) {


int number = 5;
int result = 1;
while (number > 0) {
result = result * number;
number = number - 1;
}
System.out.println(result);
}

8
Beispielprogramm: Struktur

Klasse public class Factorial {

Main-Methode public static void main(String[] args) {


int number = 5;
int result = 1;
while (number > 0) {
result = result * number;
number = number - 1;
}
System.out.println(result);
}

9
Ausführung des Beispielprogramms
Factorial.java
public class Factorial {

public static void main(String[] args) {


int number = 5;
int result = 1;

Java Programm while (number > 0) {


result = result * number;
number = number - 1;

(*.java) }
}
System.out.println(result);

Java
Compiler console> javac Factorial.java

Java Bytecode Factorial.class


(*.class) 0010110100101001110010110101101001101011100010100001110100
1110100011100100001111001001110000110001010011000100101001

JVM für
<…> console> java Factorial

Programm-
ausführung 120

10
Entwicklungsumgebungen

11
Variablen und
Anweisungen
Variablen
▪ Platzhalter für Werte
▪ Funktionsweise (anders als in der Mathematik):
▪ Variable deklarieren (Name und Typ festlegen)
▪ int number (die Variable mit Namen „number“ kann Zahlenwerte aufnehmen)
▪ Wert zuweisen
▪ number = 5 (die Variable hält jetzt den Wert 5)
▪ Wert abfragen (mehrfach)
▪ number > 0 (ist der Wert der Variablen größer als 0?)
▪ neuen Wert zuweisen
▪ number = number - 1 (die Variable hält jetzt den Wert 4)

▪ Benennung
▪ Kleinbuchstabe gefolgt von beliebig vielen Buchstaben/Ziffern (vgl. Identifier)
▪ keine Schlüsselwörter

13
Beispielprogramm (2)

public class Factorial {

public static void main(String[] args) {


int number = 5;
int result = 1;
while (number > 0) {
result = result * number;
number = number - 1;
}
System.out.println(result);
}

14
Beispielprogramm (2)

public class Factorial {

public static void main(String[] args) {


int number = 5;
Variablendeklaration
int result = 1;
while (number > 0) {
result = result * number;
number = number - 1;
}
System.out.println(result);
}

15
Beispielprogramm (2)

public class Factorial {

public static void main(String[] args) {


int number = 5;
Wertzuweisung
int result = 1;
while (number > 0) {
Alte Werte auslesen und result = result * number;
neue Werte zuweisen number = number - 1;
}
System.out.println(result);
}

16
Beispielprogramm (2)

public class Factorial {

public static void main(String[] args) {


int number = 5;
int result = 1;
while (number > 0) {
result = result * number;
number = number - 1;
}
Ausgabe des aktuellen
System.out.println(result);
Werts der Variablen auf
}
der Konsole
}

17
Grammatik: Variablendeklaration

VariableDeclaration = DataType , Identifier , [ "=" , Value ] , ";" ;

18
Einfache Arithmetische Operationen
▪ Addition, Subtraktion, Multiplikation und ganzzahlige Division
▪ von Zahlen (Konstanten) und Variablen
▪ „Punkt vor Strich“
▪ Klammerausdrücke

int x = 5 + 4;
int y = 9 - 3 * 2;
int z = x / (y - 1);
System.out.println(z);
4

19
Grammatik: Arithmetik

Value = ConstantValue ;
Value = Value , ( "+" | "-" | "*" | "/" | "%" ) , Value ;
Value = "(" , Value , ")" ;
Value = Identifier ;

20
Anweisung
▪ Vollständiger „Befehl“ in Java
▪ Beispielsweise eine einfache Variablendeklaration oder eine
Berechnung
int x = 7;
int y = 5 * x;

▪ Wird immer mit einem ; abgeschlossen

21
Struktur: Blöcke
▪ Sequenz von Anweisungen
▪ Eingeschlossen in { }
▪ Anweisungen im Block werden sequentiell ausgeführt
{
int number = 5;
int result = 1;
{
result = result * number;
number = number - 1;
}
System.out.println(result);
}

▪ Durch Blöcke können Anweisungen gruppiert werden


▪ Können überall verwendet werden, wo eine Anweisung stehen kann
22
Grammatik: Anweisungen und Blöcke

Statement = VariableDeclaration | VariableAssignment | … ;


VariableAssignment = Identifier , "=" , Value , ";" ;
Block = "{" , { Statement } , "}" ;

23
Gültigkeitsbereich von Variablen
▪ Variablen sind gültig (sichtbar) in dem Block, in dem sie
definiert sind
▪ Sie sind ebenfalls gültig in allen darin verschachtelten
Unterblöcken

{
int x = 5;
{
int y = x + 3;
int z = 7;
}
x = z - 2;
}

24
Bedingte und
wiederholte
Anweisungen
Bedingte Anweisungen (if)
▪ Ein Block von Anweisungen wird nur ausgeführt, wenn eine
bestimmte Bedingung erfüllt ist
int x = ...;
if (x == 3) {
System.out.println(x);
}

▪ Wenn eine Bedingung nicht erfüllt ist, kann ein anderer Block
ausgeführt werden
int x = ...;
if (x == 0) {
System.out.println(0);
} else {
System.out.println(100 / x);
}

26
Bedingte Anweisungen (if) (2)

27
Bedingte Anweisungen (if) (3)

int x = ...;
if (x == 0) {
System.out.println(0);
} else if (x > 10) {
System.out.println(100 / x);
} else if (x > 0) {
System.out.println(10 / x);
} else {
System.out.println(-1 * x);
}

28
Einfache Bedingungen
int x = ...;
if (x == 0) { gleich
System.out.println(x);
}
if (x > 10) { größer
System.out.println(x);
}
if (x < 10) { kleiner
System.out.println(x);
}
if (x != 0) { ungleich
System.out.println(x);
}
Auswertung if (x >= 5 && x <= 10) { größer/gleich und kleiner/gleich
▪ von links nach rechts System.out.println(x);
▪ lazy }
if (x <= 5 || x >= 10) { kleiner/gleich oder größer/gleich
System.out.println(x);
}
29
Grammatik: Bedingte Anweisungen

IfStatement = "if" , "(" , BooleanValue ")" , Block ;


BooleanValue = BooleanConstant | Identifier | Comparison ;
BooleanConstant = "true" | "false" ;
Comparison = Value , ( "<" | ">" | "==" | "<=" | ">=" | "!=" ) , Value ;

30
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0;
while (x < 3) {
x = x + 1;
System.out.println(x);
}

31
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 0
x = x + 1;
System.out.println(x);
}

32
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 0
x = x + 1;
System.out.println(x);
}

33
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 1
x = x + 1;
System.out.println(x);
}

34
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 1 1
x = x + 1;
System.out.println(x);
}

35
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 1 1
x = x + 1;
System.out.println(x);
}

36
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 2 1
x = x + 1;
System.out.println(x);
}

37
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 2 1
x = x + 1; 2
System.out.println(x);
}

38
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 2 1
x = x + 1; 2
System.out.println(x);
}

39
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 3 1
x = x + 1; 2
System.out.println(x);
}

40
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 3 1
x = x + 1; 2
System.out.println(x); 3
}

41
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 3 1
x = x + 1; 2
System.out.println(x); 3
}

42
Schleifen (while)
▪ Schleifen wiederholen die Ausführung einer Anweisung/eines
Blocks von Anweisungen so lange, wie eine Bedingung erfüllt
ist
int x = 0; Speicher Ausgabe
while (x < 3) { x = 3 1
x = x + 1; 2
System.out.println(x); 3
}

43
Schleifen (while) (2)

44
Grammatik: Schleifen

WhileStatement = "while" , "(" , BooleanValue ")" , Block ;

45
Beispiel: while-Schleife

public class Factorial {

public static void main(String[] args) {


int number = 5;
int result = 1;
While-Schleife while (number > 0) {
result = result * number;
number = number - 1;
}
System.out.println(result);
}

46
Beispielprogramm

public class Factorial {

public static void main(String[] args) {


int number = 5;
int result = 1;
while (number > 0) {
result = result * number;
number = number - 1;
}
System.out.println(result);
}

47
Lesbarkeit
Kommentare
▪ Kommentare sind Text im Programmcode, der nicht
interpretiert wird
▪ Sie erhöhen die Lesbarkeit des Codes, indem sie erklären
▪ welche Funktion ein Codeabschnitt erfüllt (was)
▪ wie ein Codeabschnitt funktioniert (wie)
▪ was für Bedingungen gelten müssen, damit ein Codeabschnitt wie
erwartet funktioniert (Vorbedingungen)
▪ was für Bedingungen nach der Ausführung eines Codeabschnitts
erfüllt sind (Nachbedingungen)
▪ Kommentare gehören zur guten Programmierpraxis
▪ Unterscheidung zwischen Zeilenkommentaren und
Mehrzeilenkommentaren

49
Beispiel: Kommentare

public static void main(String[] args) {


/*
* Calculate the factorial of a given number
* using an iterative approach. The given
* number must be greater than zero.
* The result will be printed to the console.
*/
int number = 5; // set the number to an arbitrary positive value
int result = 1; // initialize the result
while (number > 0) { // termination condition
result = result * number; // update result
// decrement number to work towards termination condition
number = number - 1;
}
System.out.println(result); // print result
}

50
Lesbarkeit: Code Conventions
▪ Eine Anweisung in einer Zeile
▪ Zeilenumbruch nach {, eigene Zeile für } if (x == 3) {
▪ Leerzeichen (_) …
▪ vor öffnenden und nach schließenden Klammern }
▪ um Operatoren (+, *, =, ==, >, …)
▪ Namen
▪ Keine Umlaute und andere Sonderzeichen (ö, ß, &, …)
▪ Klassen beginnen mit Großbuchstaben Factorial
▪ Variablen beginnen mit Kleinbuchstaben number
▪ CamelCase FactorialCalculator,
resultNumber
▪ aussagekräftige Namen tmp316, b, rnsTf

51
Typische Fehler
▪ Syntaxfehler
While (i = 8) while (i == 8) {
i + 1; i = i + 1;
} }

▪ Fehlende Initialisierung
int x; int x = 0; int x;
x = x + 1; x = x + 1; x = 0;
x = x + 1;

▪ Laufzeitfehler if (y != 0) {
int x = 3 / y;
int x = 3 / y; // y == 0 }
▪ Unendliche Schleifen
int x = 0; int x = 0; int x = 0; int x = 0;
int y = 0; while (x < 3) { int y = 0; while (x < 3) {
while (x < 3) { x = x - 1; while (x < 3) { x = x + 1;
y = y + 1; } x = x + 1; }
} } 52
Lernziele
▪ Eigenschaften, Terminologie und Arbeitsweise von Java
▪ Variablendeklaration, Wertzuweisung
▪ Blöcke
▪ Bedingungen (if)
▪ Schleifen (while)
▪ Kommentare
▪ Typische Fehler

53
Installation
Java installieren
1. Java OpenJDK herunterladen
▪ https://openjdk.java.net/
▪ direkter Download für JDK 23: https://jdk.java.net/23/
2. Datei in ein Zielverzeichnis entpacken
▪ Beispiel: "C:\Programme\Java" / "/usr/bin/java"
3. Erweitere die Pfad-Variable um das "bin"-Unterverzeichnis
▪ Beispiel: erweitere die Umgebungsvariable PATH um
"C:\Programme\Java\jdk-23\bin" / "/usr/bin/java/jdk-23/bin"
4. Setze die JAVA_HOME-Variable auf das JDK-Verzeichnis
▪ Beispiel: setze die Umgebungsvariable JAVA_HOME auf
"C:\Programme\Java\jdk-23" / "/usr/bin/java/jdk-23"

55
Eclipse installieren
1. Eclipse herunterladen
▪ https://www.eclipse.org/downloads/
2. Installer ausführen
▪ Eclipse IDE for Java Developers
3. Eclipse ausführen
4. Einen neuen Workspace anlegen
5. Ein neues Java-Projekt anlegen oder bestehende Projekte
importieren

56
Eclipse
Eclipse IDE

58
Neues Java-Projekt

59
Neues Java-Projekt (2)

60
Neue Java-Klasse

61
Neue Java-Klasse (2)

62
Neue Java-Klasse (3)

63
Java-Klasse ausführen

64
Java-Klasse ausführen (2)

65

Das könnte Ihnen auch gefallen