Variablenkonzept Klassisch, in Java Basistyp

Slides:



Advertisements
Ähnliche Präsentationen
Imperative Programmierung
Advertisements

Imperative Programmierung
der Universität Oldenburg
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
der Universität Oldenburg
3 Sprachelemente und Anweisungen JavaHS Merseburg (FH) WS 06/07 Strings (Zeichenketten)
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
V AdresseWert public static void main(...){ int[] v; v=new int[2]; } Was veranlasst diese Anweisung im Arbeitsspeicher ? Es wird im Arbeitsspeicher.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
ARRAY oder FELD oder VEKTOR
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Klassen und Objekte
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
Verzweigung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sitzung 3: Klassen, Objekte, Arrays und Kontrollstrukturen
Grundkonzepte Java - Klassendefinition
Kontrollstrukturen Verwendung: Steuerung des Ablaufs.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Grundlagen der Programmierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Objektorientiertes Konstruieren
Die Klasse String und ihre Methoden
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Java Programme nur ein bisschen objektorientiert.
Einführung in die Programmierung mit Java
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Implementieren von Klassen
 Präsentation transkript:

Variablenkonzept Klassisch, in Java Basistyp Learning By Doing 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 int x = 5; int y = 2; int z = 7; Nach Deklaration/Initiali- sierung: Nach Zuweisung y = 5;

Für Objekte werden Referenzvariablen verwendet: Learning By Doing 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 Deklaration einer Referenzvariablen T t; Erzeugung eines Objekts t = new T();

Zuweisung und Vergleich von Referenzvariablen 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 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;

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

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

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

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

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

Strings Nicht einfach Zeichenketten, sondern Instanzen einer Klasse 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()

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"; } answer = "falsch"; JOptionPane.showMessageDialog( null, answer); System.exit(0); public static void main(String[] args) { new WbzEx3(); }

Arrays Learning By Doing 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; auch: int a[]; Das Arrayobjekt (d.h. die Elemente) befinden sich auf dem Heap. Erzeugung: a = new int[6]; Anzahl kann int-Variable sein (semistatisch) Übliche Kurzschreibweise: int[] a = new int[6]; Erzeugung/Initialisierung in Kurzschreibweise: int[] a = {1, 2, 3, 6, 5, 4}; Anzahl Arrayelemente: int, keine Klammern (kein Methodenaufruf) a.length; Lesen/Schreiben (Random access): a[0], a[1], a[2], a[3], a[4], a[5] s. Buch S. 99ff