Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
start:info:11if:java_struktur 12.09.2008 08:16 | start:info:11if:java_struktur 26.03.2015 12:07 aktuell | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
public class Klassenname | public class Klassenname | ||
{ | { | ||
- | // Instanzvariablen | + | // Instanzvariablen |
- | ... | + | ... |
- | /** | + | /** |
- | * Konstruktor für Objekte der Klasse Test | + | * Konstruktor für Objekte der Klasse Test |
- | */ | + | */ |
- | public Test() | + | public Test() { |
- | { | + | // Instanzvariablen initialisieren |
- | // Instanzvariablen initialisieren | + | ... |
- | ... | + | } |
- | } | + | |
- | //Methoden | + | //Methoden |
- | public void beispielMethode() | + | public void beispielMethode() { |
- | { | + | ... |
- | ... | + | } |
- | } | + | |
} | } | ||
</code> | </code> | ||
Zeile 34: | Zeile 32: | ||
<code java> | <code java> | ||
- | public void beispielMethode() | + | public void beispielMethode() { |
- | { | + | System.out.println("Tach auch!"); |
- | System.out.println("Tach auch!"); | + | } |
- | } | + | |
</code> | </code> | ||
Zeile 53: | Zeile 50: | ||
<code java> | <code java> | ||
- | public void beispielMethode() | + | public void beispielMethode() { |
- | { | + | System.out.println("Ich lerne Java!"); |
- | System.out.println("Ich lerne Java!"); | + | System.out.println("Alles klar?!"); |
- | System.out.println("Alles klar?!"); | + | } |
- | } | + | |
</code> | </code> | ||
Zeile 77: | Zeile 73: | ||
Jetzt einiges zu den Eingaben:\\ | Jetzt einiges zu den Eingaben:\\ | ||
- | Wenn wir wollen, dass der Computer Eingaben von User((Nutzer)) einliest, brauchen wir etwas, worin diese Eingabe abgespeichert wird, bevor es verarbeitet werden kann: Eine [[start:info:11if:04_variablen|Variable]]. Es gibt dabei verschiedene [[start:info:11if:03_datentypen|Typen]] von Variablen und zudem mit unterschiedlichen Datenbereichen. Di am häufigsten benutzten hast du ja bereits kennengelert...\\ | + | Wenn wir wollen, dass der Computer Eingaben von User((Nutzer)) einliest, brauchen wir etwas, worin diese Eingabe abgespeichert wird, bevor es verarbeitet werden kann: Eine [[start:info:11if:04_variablen|Variable]]. Es gibt dabei verschiedene [[start:info:11if:03_datentypen|Typen]] von Variablen und zudem mit unterschiedlichen Datenbereichen. Die am häufigsten benutzten hast du ja bereits kennengelert...\\ |
====== Variablendeklaration ====== | ====== Variablendeklaration ====== | ||
Zeile 86: | Zeile 82: | ||
<code java> | <code java> | ||
- | int meinAlter; | + | int meinAlter; |
- | String kommentar; | + | String kommentar; |
</code> | </code> | ||
Zeile 93: | Zeile 89: | ||
<code java> | <code java> | ||
- | Variablentyp Variablenbezeichner; | + | Variablentyp Variablenbezeichner; |
</code> | </code> | ||
Zeile 108: | Zeile 104: | ||
<code java> | <code java> | ||
public class Beispiel { | public class Beispiel { | ||
- | int meinAlter; | + | int meinAlter; |
- | String kommentar; | + | String kommentar; |
- | public void beispiel() { | + | public void beispiel() { |
- | meinAlter = 19; | + | meinAlter = 19; |
- | kommentar = "Hallo! Ich lerne Java."; | + | kommentar = "Hallo! Ich lerne Java."; |
- | System.out.println(kommentar); | + | System.out.println(kommentar); |
- | System.out.println("Ich bin " + meinAlter + " Jahre alt."); | + | System.out.println("Ich bin " + meinAlter + " Jahre alt."); |
- | } | + | } |
} | } | ||
</code> | </code> | ||
Zeile 127: | Zeile 123: | ||
<code java> | <code java> | ||
public class Beispiel { | public class Beispiel { | ||
- | int meinAlter = 19; | + | int meinAlter = 19; |
- | String kommentar = "Hallo! Ich lerne Java."; | + | String kommentar = "Hallo! Ich lerne Java."; |
- | public void beispiel() { | + | public void beispiel() { |
- | System.out.println(kommentar); | + | System.out.println(kommentar); |
- | System.out.println("Ich bin " + meinAlter + " Jahre alt."); | + | System.out.println("Ich bin " + meinAlter + " Jahre alt."); |
- | } | + | } |
} | } | ||
</code> | </code> | ||
Zeile 149: | Zeile 145: | ||
public class Beispiel { | public class Beispiel { | ||
- | int deinAlter; | + | int deinAlter; |
- | String kommentar; | + | String kommentar; |
- | public void beispiel() { | + | public void beispiel() { |
- | deinAlter = IOTools.readInteger("Wie alt bist du? "); | + | deinAlter = IOTools.readInteger("Wie alt bist du? "); |
- | kommentar = IOTools.readString("Gib mir ein Kommentar: "); | + | kommentar = IOTools.readString("Gib mir ein Kommentar: "); |
- | System.out.println(kommentar); | + | System.out.println(kommentar); |
- | System.out.println("Du bist " + deinAlter + " Jahre alt."); | + | System.out.println("Du bist " + deinAlter + " Jahre alt."); |
- | } | + | } |
} | } | ||
</code> | </code> | ||
Zeile 174: | Zeile 170: | ||
public class Beispiel { | public class Beispiel { | ||
- | int deinAlter; | + | int deinAlter; |
- | String kommentar; | + | String kommentar; |
- | public void beispiel() { | + | public void beispiel() { |
- | deinAlter = IOTools.readInteger("Wie alt bist du? "); | + | deinAlter = IOTools.readInteger("Wie alt bist du? "); |
- | kommentar = IOTools.readString("Gib mir ein Kommentar: "); | + | kommentar = IOTools.readString("Gib mir ein Kommentar: "); |
- | System.out.println(kommentar); | + | System.out.println(kommentar); |
- | System.out.println("Du bist " + deinAlter + " Jahre alt."); | + | System.out.println("Du bist " + deinAlter + " Jahre alt."); |
- | } | + | } |
- | }</code> | + | } |
+ | </code> | ||
Ersetzen durch: | Ersetzen durch: | ||
Zeile 191: | Zeile 188: | ||
public class Beispiel { | public class Beispiel { | ||
- | double deinAlter; | + | double deinAlter; |
- | String kommentar; | + | String kommentar; |
- | public void beispiel() | + | public void beispiel() { |
- | { | + | deinAlter = IOTools.readDouble("Wie alt bist Du? "); |
- | deinAlter = IOTools.readDouble("Wie alt bist Du? "); | + | kommentar = IOTools.readString("Gib mir ein Kommentar: "); |
- | kommentar = IOTools.readString("Gib mir ein Kommentar: "); | + | |
- | System.out.println(kommentar); | + | System.out.println(kommentar); |
- | String format = "Du bist also %5.3f Jahre alt.\n"; | + | String format = "Du bist also %5.3f Jahre alt.\n"; |
- | System.out.printf(format, meinAlter); | + | System.out.printf(format, deinAlter); |
- | } | + | } |
} | } | ||
</code> | </code> | ||
Zeile 228: | Zeile 224: | ||
- Java Klassen fangen immer mit %%__________%% an und beinhalten %%__________%%. | - Java Klassen fangen immer mit %%__________%% an und beinhalten %%__________%%. | ||
- Was ist der Unterschied zwischen ''System.out.print()'', ''System.out.println()'' und ''System.out.printf()''? | - Was ist der Unterschied zwischen ''System.out.print()'', ''System.out.println()'' und ''System.out.printf()''? | ||
- | - Wie kann man zwei leere Zeilen auf dem Bildschirm ausgeben?'' | + | - Wie kann man zwei leere Zeilen auf dem Bildschirm ausgeben? |
- Nenne mindestens 5 Datentypen mit deren Wertebereich und Art! | - Nenne mindestens 5 Datentypen mit deren Wertebereich und Art! | ||
- Wie kann man eine Eingabe einlesen? | - Wie kann man eine Eingabe einlesen? | ||
Zeile 245: | Zeile 241: | ||
+ | ====== Rechnen mit Java ====== | ||
+ | |||
+ | Java ist auch fähig zu rechnen, was das Programmieren erheblich erleichtert. Hier folgen jetzt ein paar Veinbarungen:\\ | ||
+ | |||
+ | Zum Rechnen braucht man Operatoren. Zur Verfügung stehen standardmäßig folgende: | ||
+ | |||
+ | ===== Arithmetische Operatoren ===== | ||
+ | |||
+ | ^ Operator ^ Beispiel ^ Bedeutung ^ | ||
+ | | ''+'' | ''x + y'' |Addition | | ||
+ | | ''-'' | ''x - y'' |Subtraktion | | ||
+ | | ''*'' | ''x * y'' |Multiplikation | | ||
+ | | ''/'' | ''x / y'' |Division | | ||
+ | | ''%'' | ''x % y'' |Modulo | | ||
+ | |||
+ | Um den Operator Modulo (''%'') zu verstehen, sollte man einige Beispiele durchrechnen. Aber soviel vorweg: Damit wird eine ganzzahlige Division durchgeführt und als Ergebnis der Restwert geliefert. | ||
+ | |||
+ | **Beispiel:** | ||
+ | |||
+ | <code java> | ||
+ | public void bespielOperation() { | ||
+ | int x = 28; | ||
+ | int y = 8; | ||
+ | |||
+ | System.out.println(x + y); // = 36 | ||
+ | System.out.println(x - y); // = 20 | ||
+ | System.out.println(x * y); // =224 | ||
+ | System.out.println(x / y); // = 3 | ||
+ | System.out.println(x % y); // = 4 | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Probiere auch andere Werte aus, bis du zu allen Operationen ein Aha-Erlebnis hast.\\ | ||
+ | |||
+ | Ach ja: Hast du gemerkt, dass der Ergebnistyp von den Typen der Zahlen in der Rechnung abhängt? Wie? Ausprobieren und folgende Tabelle ausfüllen: | ||
+ | |||
+ | ^Operator ^ ''+'' ^ ''-'' ^ ''*'' ^''/''^''%''^ | ||
+ | ^''int'' op ''int'' |''int''| | | | | | ||
+ | ^''double'' op ''int'' | |''double''| | | | | ||
+ | ^''double'' op ''double''| | |''double''| | | | ||
+ | |||
+ | ===== Zuweisungsoperatoren ===== | ||
+ | |||
+ | Wie weist man einer Variablen (sagen wir ''x'') einen Wert zu? Das passiert mit dem Gleichheitszeichen (''='').\\ | ||
+ | |||
+ | **Beispiel:**\\ | ||
+ | <code java> | ||
+ | x = 1; | ||
+ | x = a + b; | ||
+ | </code> | ||
+ | |||
+ | Für einige Zuweisungen in der Form ''x = x ''//op//'' y'' - wobei //op// ein arithmetischer Operator steht - bietet Java eine verkürzte Schreibweise:\\ | ||
+ | |||
+ | ^Operator^Beispiel^Bedeutung ^ | ||
+ | | += | x += y | x = x + y | | ||
+ | | -= | x -= y | x = x - y | | ||
+ | | *= | x *= y | x = x * y | | ||
+ | | /= | x /= y | x = x / y | | ||
+ | | %= | x %= y | x = x % y | | ||
+ | |||
+ | Diese Schreibweise lässt sich (meiner Meinung nach) ganz gut auf folgende Weise interpretieren und merken:\\ | ||
+ | Erhöhe/reduziere/vervielfache/teile linke Seite um rechte Seite. | ||
+ | |||
+ | Nur bei dem Modulo-Operator macht dieser Merksatz keinen Sinn... :-)\\ | ||
+ | \\ | ||
+ | Neben diesen arithmetischen Operatoren und den Zuweisungsoperatoren gibt es noch... | ||
+ | |||
+ | |||
+ | ===== Inkrement- und Dekrement-Operatoren ===== | ||
+ | |||
+ | Es ist oft so, dass der Wert einer ''int''-Variablen um 1 erhöht oder vermindert wird. Auch hierfür bietet Java spezielle Operatoren an, nämlich:\\ | ||
+ | |||
+ | ^Operator ^Ausdruck ^Bedeutung ^ | ||
+ | | ''%%++%%'' | ''%%++x%%'' | ''%%x = x + 1%%'' | | ||
+ | || | ''%%x++%%'' | ''%%x = x + 1%%'' | | ||
+ | | ''%%--%%'' | ''%%--x%%'' | ''%%x = x - 1%%'' | | ||
+ | || | ''%%x--%%'' | ''%%x = x - 1%%'' | | ||
+ | |||
+ | **ACHTUNG!** Es macht einen Unterschied, wenn man den Inkrement- bzw. Dekrement-Operator _vor_ oder _hinter_ dem Variablennamen stellt. Dazu ein Beispiel, um den Unterschied zu verdeutlichen:\\ | ||
+ | |||
+ | <code java> | ||
+ | y = x++; | ||
+ | </code> | ||
+ | |||
+ | ''y'' erhält den Wert von ''x'', erst danach wird ''x'' inkrementiert. | ||
+ | |||
+ | <code java> | ||
+ | z = ++x; | ||
+ | </code> | ||
+ | |||
+ | ''x'' wird zuerst inkrementiert, dann wird ''z'' dieser neue Wert von ''x'' zugewiesen. | ||
+ | |||
+ | ,,,,,, | ||
+ | |||
+ | * Addition (+), Subtraktion (–), Multiplikation (*), Division (''/'') und Modulo (''%''): | ||
+ | |||
+ | Wenn beide Zahlen den Typ Integer haben, kommt auch Integer raus. Ansonsten – auch wenn nur eine Zahl Real sein sollte – wird das Ergebnis Real. | ||
+ | o Integer mit Integer = Integer | ||
+ | o Integer mit real = real | ||
+ | o real mit real = real | ||
+ | • Division (/): Liefert immer Real als Ergebnis. | ||
+ | • Eine besondere Art der Division (Div): Fast dasselbe wie (/), aber es liefert stets ein Integer-Ergebnis. | ||
+ | |||
+ | Schön und gut, aber wie wird das umgesetzt? | ||
+ | |||
+ | Gleichungen, wie wir sie kennen… …werden zu : | ||
+ | y = 5 • 3 y:=5*3; (y kann sowohl Integer als auch real sein) | ||
+ | z = 5 + 4 • 3 z:=5+4*3; (z kann sowohl Integer als auch real sein) | ||
+ | a = 3,14 • 7 • 7 a:=3.14*7*7; (a ist immer real) | ||
+ | b = 14 • (5 + a) b:=14*(5+a); (b hängt von a ab, wenn a real ist, ist b immer real. Wenn a Integer ist, kann b real oder Integer sein). | ||
+ | |||
+ | OK, das sind relativ einfache Beispiele. Aber man sollte sie gut kennen. Wie sieht’s jetzt mit der besonderen Art der Division aus? | ||
+ | |||
+ | a:=22/7; wenn a real ist, ergibt das 3.142856 … usw. anderenfalls eine Fehlermeldung | ||
+ | b:=22 div 7; b ist immer Integer und erhält den Wert 3. Div rundet immer ab. Selbst 11 div 4 würde 3 ergeben, obwohl der Otto-Normal-Verbraucher 3,75 auf 4 aufrunden würde… | ||
+ | Pascal kann aber Real-Werte zu Integer-Werten konvertieren: mit den Befehlen Trunc und Round. Trunc verhält sich ähnlich wie Div; es rundet stets ab. Round ist ein wenig moderater: es rundet zur nächsten ganzen Zahl. Ü-berprüfe die unten stehenden Zeilen, um dir ein Bild davon zu machen: | ||
+ | USES crt; | ||
+ | BEGIN | ||
+ | clrscr; | ||
+ | writeln(Trunc(12.31)); | ||
+ | writeln(Round(12.31)); | ||
+ | writeln(Trunc(31.49)); | ||
+ | writeln(Round(31.49)); | ||
+ | writeln(Trunc(44.59)); | ||
+ | writeln(Round(44.59)); | ||
+ | readln; | ||
+ | END; | ||
+ | ,,,,,, |