1 / 11

Variablenkonzept

Variablenkonzept. Learning By Doing. Nach Deklaration/Initiali- sierung :. Nach Zuweisung. int x = 5; int y = 2; int z = 7;. y = 5;. Variablenkonzept. Klassisch, in Java Basistyp. Variablendeklaration reserviert Speicherplatz im Hauptspeicher.

oliana
Download Presentation

Variablenkonzept

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Referenzvariablen Learning By Doing Deklaration einer Referenzvariablen Erzeugung eines Objekts T t; t = new T(); Für Objekte werden Referenzvariablen verwendet: • Für Objekte wird in einem dynamischen Speicherbereich (Heap) zu Laufzeit Speicherplatz reserviert • 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

  3. Zuweisung/Vergleich Learning By Doing Zuweisung und Vergleich von Referenzvariablen • Zugewiesene Referenzvariablen zeigen auf dasselbe Objekt • Verändert man mit einer dieser Variablen das Objekt, so ist esautomatisch 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;

  4. Basistypen/Referenztypen 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(); } } // 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(); } } Basistypen versus Referenztypen J2SE V1.4:statt import static nur importdafür statt println() überall Console.println()

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

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

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

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

  9. Strings 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) • Erzeugung mit String-Literal (Anführungszeichen) String s = "Heute ist der "; ... Date today = new Date(); String s = s + today.toString(); • enger Zusammenhang mit Klassen StringBuffer und StringBuilder sb.charAt() sb.deleteCharAt() sb.setCharAt() sb.insert() sb.append()

  10. WbzEx3 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(); } }

  11. Arrays Learning By Doing Anzahl kann int-Variable sein (semistatisch) auch: int a[]; int, keine Klammern (kein Methodenaufruf) 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.length; • Lesen/Schreiben (Random access): a[0], a[1], a[2], a[3], a[4], a[5] s. Buch S. 99ff

More Related