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.
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
}
}
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.
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 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
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;
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
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
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.
System.out.println((!false) && true ); // gibt true aus
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
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
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
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
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);
}
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
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;
}
}
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 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
}
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.
}