Professionelle Java-Schulung – Vor Ort und Online.

  • Einführung in die Welt der Java-Programmierung
  • Konzepte und Techniken von Algorithmen kennenlernen
  • Datenbanken und ihren Einsatz in der digitalen Welt

Einführung in Java

Java ist eine objektorientierte plattformunabhängige Programmiersprache, deren Grundlage 1991 bei Sun Microsystems gelegt wurde. Ziel war es, eine Programmierung für unterschiedliche Geräte zu ermöglichen, die wenig Speicher und eine geringe Rechenleistung besitzen. 1995 wurde der Name JavaTM für die neue Programmiersprache vergeben. Java wurde und wird ständig weiterentwickelt.

Eigenschaften von Java

  • Ein Java-Programm läuft prinzipiell auf allen Plattformen und Betriebssystemen, für die eine Java Laufzeitumgebung vorliegt.
  • Mit Java wird standardmäßig eine große Anzahl von Bibliotheken mitgeliefert, das sind fertige Programmteile, z. B. zur Grafikprogrammierung, zum Netzwerkzugriff oder zur Arbeit mit Dateien und Datenbanken.
  • Was Sie zur Arbeit mit Java und zur Weitergabe Ihrer Programme benötigen, steht auf allen Plattformen meist kostenfrei zur Verfügung. Außerdem stehen Ihnen zahlreiche kostenfreie Entwicklungsumgebungen zur Verfügung.
  • Die Sprache Java wird durch Oracle zentral standardisiert, sodass Sie nicht mit Inkompatibilitäten rechnen müssen.
  • Für Java-Programme, die über einen Browser ausgeführt werden, gelten besondere Sicherheitsaspekte, die Manipulationen und Eingriffe über das Betriebssystem verhindern sollen.

 

JDK

  • Der Java-Compiler javac zum Übersetzen des Java-Programms
  • Der Java-Interpreter java zum Ausführen des vom Compiler erzeugten Bytecodes
  • Bereits im JDK ist eine Laufzeitumgebung (ein Interpreter) enthalten, mit der Sie während der Entwicklung Ihre Java-Programme testen können.



Das erste Programm

Schauen wir uns nun endlich mal ein Java-Programm im Quelltext an. Das nachfolgende Programm gibt „Hello World“ aus. Wir werden gleich alles im Detail besprechen, was die einzelnen Zeilen bedeuten. Man muss sich diese allerdings nicht gleich merken, da viele Details haben erst später eine größere Bedeutung.

    
    public class Hello {                        // Definition der Klasse HalloWelt
      public static void main(String[] args) {  // Starten mit der Methode main
         System.out.println("Hello World");     // Ausgabe eines Textes
       }
    }
    
  
  • Mit dem Schlüsselwort class wird eine Klassendefinition eingeleitet
  • Innerhalb von geschweiften Klammern steht die Definition einer Klasse.
  • Damit eine Applikation ausgeführt werden kann, benötigt sie die Methode main.
  • Der auszugebende Text wird in Anführungszeichen innerhalb runder Klammern angegeben
  • Jede Java-Anweisung wird durch ein Semikolon beendet, damit der Compiler erkennt, wo die auszuführende Anweisung zu Ende ist.



Übersetzen und Ausführen

Wir haben uns nun angesehen, wie ein Java-Quelltext aussehen kann. Es stellt sich direkt die Frage, wie man vom Quelltext zum Programm kommt und dieses ausführen kann. Es ist zunächst notwendig, dass der Quelltext durch den Compiler in Bytecode übersetzt wird. Der Bytecode kann dann wiederum von der Java Runtime Environment ausgeführt werden.



Kommentieren, Einrücken und Formatieren

Nachdem wir jetzt so viel gelernt haben, ist es sinnvoll uns Notizen machen zu können - insbesondere im Quelltext. Notizen im Quelltext werden Kommentare genannt und können in Java in zwei verschiedenen Arten eingebaut werden. Zuerst schauen wir uns einzeilige Kommentare an:

    
      doSomthing(); // Dies ist ein Kommentar und wird vom Java-Compiler ignoriert
    

Der Rest der Zeile wird ab dem doppelten Schrägstrich ignoriert, in der nächsten Zeile geht es aber ganz normal weiter. Möchte man längere Kommentare machen, so kann man auch einen Kommentarblock erstellen, das geht dann so:

   
/* Das hier ist ein Kommentarblock, er wird durch
   Schraegstrich Stern begonnen. Auch hier steht noch ein
   Kommentar, weil der Block noch nicht geschlossen ist.
   Schliessen kann man einen Kommentarblock so: */
    

 

Escape-Sequenzen

Escape-Sequenzen in Java sind spezielle Zeichenfolgen, die innerhalb von Zeichenketten verwendet werden können, um bestimmte spezielle Zeichen darzustellen, die normalerweise schwer darzustellen sind oder spezielle Bedeutungen haben. Escape-Sequenzen beginnen immer mit einem Backslash (\) gefolgt von einem bestimmten Buchstaben oder einer Kombination von Buchstaben.

    
\n: Zeilenumbruch (newline)
\t: Tabulator
\": Doppeltes Anführungszeichen
\': Einfaches Anführungszeichen
\\: Backslash
    

 

Variablen und Zahlen

Damit unsere Programme sinnvolle Dinge tun benötigen sie meist Daten mit denen sie etwas machen können. Diese Daten werden in einem Speicherbereich in einem Programm abgelegt. Bevor man mit einer Variablen arbeiten kann muss man sie erst einmal deklarieren, d.h. anlegen:

    
int zahl;
zahl = 5;

//oder in einer Zeile
int zahl = 5;
    

Der Typ ist hier int. Es gibt ganze Zahlen, die wir mit dem Wort int zahl. In die Variable kommt eine Zahl, in dem wir eine Zuweisung machen.

Bei einer Fließkommazahl würde im Programm 4.5 stehen. Deklaration und Zuweisung kann auch in einer Zeile geschehen:

    
double dZahl ;
dZahl = 4.5;

//oder in einer Zeile
double dZahl = 4.5;
    

Rechnen mit Zahlen

Mit Zahlen kann nun gerechnet werden. Es gibt die gewohnten Rechenoperationen +, -, * und /. In unserem Beispiel rechnen wir eine einfache Formel aus.


int i = 6;
System.out.println(5 * 3 + (i / 2));
// gibt 18 aus
    

Sehr häufig muss man in einem Programm eine Variable immer wieder um 1 erhöhen. Das kann man auf drei Arten machen:

   
int i = 0;
i = i + 1; // i ist 1
i += 1;    // i ist 2
i++;       // i ist 3

i++;       // Post addition
++i;       // Pre addition

    

Modulo

Zusätzlich zu den üblichen Grundrechenarten gibt es die Modulo-Operation %. Diese entspricht dem Teilen mit Rest aus der Grundschule und liefert den Rest beim Teilen.

    
System.out.println(5 % 2); // gibt 1 aus
    

Beim Teilen von ganzen Zahlen (int) bekommt man nur die Anzahl ganzer Teiler als Ergebnis.

    
System.out.println(5 / 2); // gibt 2 aus
    

Wahrheitswerte

Bisher haben wie int für ganze Zahlen und double für rationale Zahlen kennen gelernt. Ein wichtiger Typ ist boolean, der nur die Wahrheitswerte wahr oder falsch (true oder false) aufnehmen kann. Immer wenn man einen Vergleich macht, kommt als Ergebnis ein boolean heraus.

   
< kleiner
<= kleiner oder gleich
== gleich
>= größer oder gleich
> größer
!= ungleich
    

Es ist auch möglich, mehrere Vergleiche auf einmal zu machen. Wenn wir wissen wollen, ob das Alter einer Person zwischen 18 und 21 liegt, können wir das so bestimmen:

   
boolean ergebnis = (alter < 21) && (alter > 18);
    

Es gibt also Befehle für Arithmetik mit Wahrheitswerten wie mit Zahlen.

  • logisches Nicht: !a ergibt false, wenn a wahr ist und true, wenn a falsch ist
  • logisches Und: a && b ergibt true, wenn sowohl a als auch b wahr sind
  • logisches Oder: a || b ergibt true, wenn mindestens einer der beiden Ausdrücke a oder b wahr ist
  • exklusives Oder: a ^ b ergibt true, wenn beide Ausdrücke einen unterschiedlichen Wahrheitswert haben
   
System.out.println((!false) && true ); // gibt true aus
    

Strings

Auch mit Text muss oft in Programmen gearbeitet werden. Dazu gibt es den Datentyp String. Wir beschränken uns vorerst auf eine sehr einfache Operation, nämlich das Zusammenhängen von Strings.

   
String text = "Hallo";
String mehr = text + " Welt";  // Hallo Welt
    

Der Rest: byte, short, char, long, float

Es gibt noch mehrere Datentypen, auf die noch nicht eingegangen worden ist. Für Zahlen gibt es neben int auch long. Die Wertebereiche dieser Typen sind verschieden, ein long kann 64 Bit ganze Zahlen enthalten, ein int nur 32 Bit. Bei Fließkommazahlen ist es ähn- lich, hier gibt es noch floats, die auch 32 Bit haben und damit weniger Werte enthalten können als double mit 64 Bit. Bei der Zuweisung muss man Java sagen was für einen Typ eine Zahl hat, falls man long oder float verwendet, indem man ein l oder f an die Konstante anhängt.

    
long grosseGanzeZahl = 2147483648l;
float nichtSoooGross = 1.0f;
    

Es gibt auch Datentypen für Zahlen die deutlich kleiner als int sind. In eine short Variable passen 16 Bit Werte, in ein byte nur 8 Bit. Ein String wird immer mit doppelten Anführungszeichen angegeben. Manchmal braucht man ein einzelnes Zeichen, dann nimmt man ein char.

   
char buchstabe = ’a’;
    

Wenn beispielsweise eine Fließkommazahl auf int gecastet wird gehen die Nachkommastellen verloren (kein Runden, es wird abgeschnitten).

    
int ganzzahl = (int) 3.1415; // ist also 3
    

Die Liste aller reservierten Schlüsselwörter (Keywords) in Java

Diese Schlüsselwörter sind vordefiniert und haben spezielle Bedeutungen in der Java-Programmiersprache. Man sollte darauf achten, dass diese Wörter nicht für andere Zwecke wie die Benennung von Variablen oder Methoden verwendet werden können, da sie reserviert sind.

    
abstract    assert      boolean     break       byte
case        catch       char        class       const
continue    default     do          double      else
enum        extends     final       finally     float
for         goto        if          implements  import
instanceof  int         interface   long        native
new         package     private     protected   public
return      short       static      strictfp    super
switch      synchronized this        throw       throws
transient   try         void        volatile    while

    

Expression

In Java bezieht sich der Begriff "Expression" auf eine Kombination von Variablen, Konstanten, Operatoren und Methodenaufrufen, die einen Wert erzeugt. Eine Expression wird dazu verwendet, Werte zu berechnen, Operationen durchzuführen oder Entscheidungen zu treffen.

    

int summe = 5 + 3;          // Addition
boolean istGleich = (5 == 5);    // Gleichheitsprüfung
boolean logischesUnd = (true && false); // Logisches UND
int ergebnis = Math.max(10, 15); // Methodenaufrufausdruck
MeinKlasse objekt = new MeinKlasse(); // Ausdruck zur Objekterstellung
int drittesElement = zahlen[2]; // Ausdruck zum Zugriff auf ein Array-Element

    

Statement

Ein Statement (Anweisung) in Java ist eine in sich geschlossene Anweisung, die eine Aktion oder Operation darstellt. In Java gibt es verschiedene Arten von Statements, die jeweils unterschiedliche Funktionen haben.

    

System.out.println("Hallo, Welt!"); // Aufruf einer Methode
zahl = zahl * 2;                      // Arithmetischer Ausdruck

if (zahl > 0) {
    System.out.println("Die Zahl ist positiv.");
} else {
    System.out.println("Die Zahl ist nicht positiv.");
}

for (int i = 0; i < 5; i++) {
    System.out.println("Schleifen-Durchlauf: " + i);
}
    

Aufgaben für die Einführung

Aufgabe 1

a) Was sind die wichtigsten Eigenschaften von Java?
b) Was bedeutet Plattformunabhängigkeit in Java und wodurch wird die erreicht?

c) Java hat eine Reihe von Konventionen und Best Practices für die Syntax, die dazu beitragen, den Code lesbar und konsistent zu gestalten. Schreiben Sie jeweils zwei Beispiele für die folgenden Konventionen:
-Namensgebung für Klassen
-Namensgebung für Methoden
-Namensgebung für Variablen
-CamelCase
-Verwendung von Konstanten
-
Package Namen

Aufgabe 2

Finden Sie die Syntaxfehler in diesem Quellcode:


public class SyntaxErrorExample {
    public static void main(String[] args) {

        System.out.println("Hallo, Welt!";
        int number = "5";
        if (number = 5)
            System.out.println("Die Zahl ist 5.");
            String my-variable = "Test";
            int class = 10;
    }
}

Aufgabe 3

1)Welche Ausgabe erzeugen die folgenden Anweisungen?

 
  System.out.println("3+7= " + 3 + 7);
  System.out.println("3+7= " + (3 + 7));

  System.out.println(5.0 / 2.0 + 5 / 2);
  System.out.println(5.0 / 2.0 + 5 / 2.);

  System.out.println(2.3 + 7 / 2 * 4);

 
 int a = 5;
 a++;
 System.out.println(a); 
 System.out.println(++a); 
 System.out.println(a++); 
 System.out.println(++a); 
    
 int b = 3;
 b--;
 System.out.println(a * b); 
 b*=2;
 System.out.println(++b); 
 b+=3;
 System.out.println(b);

 
 
 boolean t = true;
 boolean f = false;
 System.out.println(t && t);
 System.out.println(t && f);
 System.out.println(t || t);
 System.out.println(t || f);

 int k = 0, i = 1; 
 boolean z = false;
 z= ( k>i ) && ( k>=0 ); 
 z= ( k>i ) || ( i>k ); 
 System.out.println(z);
 System.out.println(!z);


Aufgabe 4

Aufgabe BMI:
Der Body-Mass-Index(BMI) ist eine Maßzahl für die Bewertung des Körpergewichts eines Menschen. Der BMI berechnet sich aus dem Körpergewicht dividiert durch das Quadrat der Körpergröße.
Die Formel lautet: BMI = gewicht / (groesse * groesse).
Implementieren Sie den BMI-Rechner in der Main-Methode.

 
public static void main(String[] args) {  
  gewicht = 70
  groesse = 175
  Formel BMI
  Ausgabe bmi
}

Aufgabe 5

In diesem Quellcode sind zwei Fragen formuliert. Bitte beantworten Sie die Frage (Aufgabe a) und formatieren Sie den Text, sodass er wie die Frage (Aufgabe b) aussieht.

 

 
public static void main(String[] args) {
    
 String text = "Java ist eine weit verbreitete objektorientierte "+
     "Programmiersprache, die von James Gosling und seinen Kollegen" + 
     "bei Sun Microsystems in den 1990er Jahren " +
     "entwickelt wurde. Heute gehört Sun Microsystems zu Oracle, da " +
     "Oracle Sun im Jahr 2010 übernommen hat. Java wurde mit dem Ziel entworfen," + 
     "eine plattformübergreifende Programmiersprache zu sein."; 
    
// Aufgabe a: Wie wird dieser Text  auf der Konsole ausgegeben?
     System.out.println(text);
    
// Aufgabe b: Der Text soll auf der Konsole wie folgt formatiert ausgegeben werden.(Farben ingnorieren)
Java ist eine weit verbreitete objektorientierte Programmiersprache, 
die von James Gosling und seinen Kollegenbei Sun Microsystems in den 
1990er Jahren entwickelt wurde.  
 
Heute gehört "Sun Microsystems" zu Oracle, da Oracle Sun im   Jahr 2010   übernommen hat. 

Java wurde mit dem Ziel entworfen, eine plattformübergreifende Programmiersprache zu sein.
}