Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Learning By Doing Variablenkonzept Variablendeklaration reserviert Speicherplatz im Hauptspeicher Klassisch, in Java Basistyp int x = 5; int y = 2; int.

Ähnliche Präsentationen


Präsentation zum Thema: "Learning By Doing Variablenkonzept Variablendeklaration reserviert Speicherplatz im Hauptspeicher Klassisch, in Java Basistyp int x = 5; int y = 2; int."—  Präsentation transkript:

1 Learning By Doing Variablenkonzept Variablendeklaration reserviert Speicherplatz im Hauptspeicher Klassisch, in Java Basistyp int x = 5; int y = 2; int z = 7; Nach Deklaration/Initiali- sierung: Nach Zuweisung y = 5; Initialisierung setzt einen Wert Variable besteht aus Name und Wert Speicherplatz wird zu Compilationszeit reserviert Variablenkonzept

2 Learning By Doing Für Objekte wird in einem dynamischen Speicherbereich (Heap) zu Laufzeit Speicherplatz reserviert Für Objekte werden Referenzvariablen verwendet: Deklaration einer Referenzvariablen T t; Erzeugung eines Objekts t = new T(); Um eine Objekt anzusprechen muss eine Referenzvariable (Referenz) verwendet werden, welche die Adresse des Objekts enthält. Der Wert der Referenz (also die Adresse des Objekts) ist nicht zugänglich Objekte werden mit dem Erzeugungsoperator new erzeugt. Der Rückgabe- wert wir einer Referenzvariable zugewiesen Referenzvariablen

3 Learning By Doing Zugewiesene Referenzvariablen zeigen auf dasselbe Objekt Zuweisung und Vergleich von Referenzvariablen Verändert man mit einer dieser Variablen das Objekt, so ist es automatisch auch für die andere Variable geändert Der Vergleich von Referenzvariablen mit == prüft, ob die beiden Variablen auf das gleiche Objekt verweisen und nicht, ob die beiden Objekte gleich sind T t = new T(); T u; u = t; Zuweisung/Vergleich

4 Learning By Doing // WbzEx2.java import static ch.aplu.util.Console.*; class WbzEx2 { WbzEx2() { int hans = 3; println("hans: " + hans); int peter; peter = hans; println("peter: " + peter); hans = 7; println("hans: " + hans); println("peter: " + peter); } public static void main(String[] args) { new WbzEx2a(); } Basistypen versus Referenztypen // WbzEx2a.java import ch.aplu.turtle.*; import java.awt.Color; class WbzEx2a { WbzEx2a() { Turtle hans = new Turtle(Color.red); Turtle peter; peter = hans; hans.setColor(Color.blue); peter.back(100); } public static void main(String[] args) { new WbzEx2a(); } J2SE V1.4: statt import static nur import dafür statt println() überall Console.println() Basistypen/Referenztypen

5 Learning By Doing Referenzvariablen (Referenzen) dienen nicht dazu, Objekte zu speichern, sondern mit ihnen zu kommunizieren Referenzenkommunikation

6 Learning By Doing Basistypen s. Buch S. 66 Übersicht Basistypen

7 Learning By Doing Ausdrücke/Operatoren s. Buch S. 72/73 Ausdrücke/Operatoren

8 Learning By Doing Ausdrücke/Operatoren s. Buch S. 72/73 Ausrücke/Op 2. Teil

9 Learning By Doing Strings Nicht einfach Zeichenketten, sondern Instanzen einer Klasse In Java eine sehr spezielle Implementierung unveränderlich (immutable) in einem speziellen Speicherbereich (String pool ) + - Operator überladen (Konkatenation) enger Zusammenhang mit Klassen StringBuffer und StringBuilder Erzeugung mit String-Literal (Anführungszeichen) Date today = new Date(); String s = "Heute ist der ";... String s = s + today.toString(); sb.append() sb.charAt() sb.deleteCharAt() sb.setCharAt() sb.insert() Strings

10 Learning By Doing // WbzEx3.java import javax.swing.JOptionPane; class WbzEx3 { WbzEx3() { String town = "Bern"; String answer = ""; boolean quitting = false; while (!quitting) { String input = JOptionPane.showInputDialog( "Wo findet der Wbz-Kurs statt?"); if (input == null) quitting = true; else { if (input.equals(town)) { answer = "richtig"; quitting = true; } else answer = "falsch"; JOptionPane.showMessageDialog( null, answer); } System.exit(0); } public static void main(String[] args) { new WbzEx3(); } WbzEx3

11 Learning By Doing Arrays Analog math. Vektor: Statt von Komponenten spricht man von Elementen Elemente haben alle denselben Datentyp Elemente werden mit einem Arrayindex, der immer bei 0 beginnt, angesprochen Ein Array ist ein Objekt (mit etwas speziellen Eigenschaften) Ein Array wird mit einer Referenzvariablen (Arrayreferenz) angesprochen. Deklaration: int[] a; Das Arrayobjekt (d.h. die Elemente) befinden sich auf dem Heap. Erzeugung: a = new int[6]; Übliche Kurzschreibweise: int[] a = new int[6]; Erzeugung/Initialisierung in Kurzschreibweise: int[] a = {1, 2, 3, 6, 5, 4}; Anzahl Arrayelemente: a[0], a[1], a[2], a[3], a[4], a[5] Lesen/Schreiben (Random access): a.length; int, keine Klammern (kein Methodenaufruf) auch: int a[]; Anzahl kann int-Variable sein (semistatisch) s. Buch S. 99ff Arrays


Herunterladen ppt "Learning By Doing Variablenkonzept Variablendeklaration reserviert Speicherplatz im Hauptspeicher Klassisch, in Java Basistyp int x = 5; int y = 2; int."

Ähnliche Präsentationen


Google-Anzeigen