Objektorientierte Programmierung OOP Programmieren mit Java

Größe: px
Ab Seite anzeigen:

Download "Objektorientierte Programmierung OOP Programmieren mit Java"

Transkript

1 4 Datenfelder, Parameterübergabe, Casting Objektorientierte Programmierung OOP Programmieren mit Java 4 Datenfelder, Parameterübergabe, Casting 4 Datenfelder, Parameterübergabe, Casting 4.1 Datenfelder Erstellen von Arrays Zugriff auf Array-Elemente Dreiecksmatrizen Referenztyp String Kopieren von Datenfeldern 4.2 Parameterübergabe 4.3 Casting Automatische Typenkonvertierung Type-Cast-Operator Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Datenfelder 4.1 Datenfelder 4 Datenfelder, Parameterübergabe, Casting 4.1 Datenfelder Erstellen von Arrays Zugriff auf Array-Elemente Dreiecksmatrizen Referenztyp String Kopieren von Datenfeldern 4.2 Parameterübergabe 4.3 Casting Automatische Typenkonvertierung Type-Cast-Operator Datenfelder heißen auf Englisch Arrays. Arrays sind eine Ansammlung von Elementen eines bestimmten Typs, die über einen Index oder mehrere Indizes adressiert werden. Im klassischen Array sind die Indizes Integerzahlen. In Java sind Arrays Objekte. (Was Objekte sind und was das bedeutet, wird in einem späteren Kapitel erläutert.) Der Typ der Elemente eines Arrays muss in Java immer derselbe sein, kann aber wieder aus einem Array bestehen (verschachtelte Arrays). Ein Arrays benötigt so viele Indizes zur Adressierung seiner Elemente wie es Dimensionen aufweist. Die Zählung der Elemente beginnt in Java bei 0. Beispiel: Das zweidimensionale Array Regal [0][0] [1][0] [2][0] [3][0] [0][1] [0][2] Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting

2 4.1 Datenfelder Erstellen von Arrays Der Index (bzw. die Indizes) eines Arrays muss (müssen) in Java vom Typ int sein und beginnt (beginnen) immer mit 0. Auf die einzelnen Elemente eines Arrays wird mittels der eckigen Klammer [ ] zugegriffen. Beispiele: Datenfeld[0] 1. Element des Arrays Datenfeld[] Datenfeld[1] 2. Element des Arrays Datenfeld[] Datenfeld[10] 11. Element des Arrays Datenfeld[]... Matrix[0][0] Element der 1.Zeile und 1.Spalte des Arrays Matrix[][] Matrix[2][4] Element der 3.Zeile und 5.Spalte des Arrays Matrix[][] Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Zum Erstellen eines Arrays in Java müssen folgende drei Schritte durchgeführt werden: Deklarieren einer Array-Variablen Initialisieren des Arrays (Erzeugen eines Array-Objektes mit Zuweisen an die Array- Variable) Füllen des Arrays mit Werten Für eine kürze Schreibweise im Java-Quelltext gilt: Die Schritte 1. und 2. können mittels einer einzigen Anweisung ausgeführt werden. Die Schritte 1. bis 3. können auch mittels einer einzigen Anweisung ausgeführt werden. Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Erstellen von Arrays Erstellen von Arrays Deklarieren einer Array-Variablen Zuerst muss eine Variable deklariert werden, über die auf das Array zugegriffen wird. (Die Variable zeigt quasi auf das Array.) Die Kennzeichnung der Variable als Array-Variable erfolgt mittels eckiger Klammern [ ], z.b.: double[ ] Datenfeld; Ein zweidimensionales Array wird mit 2 aufeinander folgenden eckigen Klammern [ ] [ ] ([Zeile][Spalte]) gekennzeichnet, ein dreidimensionales Array mit [ ][ ][ ], und so fort. 2D-Beispiel: int[ ][ ] Matrix; In Anlehnung an C/C++ sind auch folgende Positionen für die eckigen Klammern erlaubt (worauf aber im Folgenden nicht weiter eingegangen wird): double Datenfeld[ ]; oder int Matrix[ ][ ]; Initialisieren des Arrays Ein Array-Objekt wird erzeugt und der Array-Variablen zugewiesen. Dabei wird der Variablen auch mitgeteilt, wie groß das Array ist. Dies geschieht mittels des new-operators, z.b.: Datenfeld = new double[4]; oder Matrix = new int[2][2]; Die mittels des new-operators entstehenden Arrays sind dabei mit folgenden Default-Werten (vordefinierten Werten) initialisiert: false für Boolesche Arrays, \0 für Zeichen-Arrays, 0 für Ganzzahl-Arrays und 0.0 für Gleitzahl-Arrays Beispielsweise ist jeder Wert in Datenfeld[] gleich 0.0 oder in Matrix[][] gleich 0. Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting

3 4.1.1 Erstellen von Arrays Diese beiden Schritte können auch in einem einzigen Aufruf kombiniert werden: 1. / 2. Deklarieren und Initialisieren eines Arrays Dies geschieht ebenfalls mittels des new-operators, z.b.: double[] Datenfeld = new double[4]; oder int[][] Matrix = new int[2][2]; Die mittels des new-operators entstehenden Arrays sind auch hier mit folgenden Default-Werten initialisiert: false für Boolesche, \0 für Zeichen-, 0 für Ganzzahl- und 0.0 für Gleitzahl-Arrays. Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Erstellen von Arrays Soll nun das Arrays bei seiner Initialisierung sogleich auch mit vorgegebene Werten belegt werden, können die beiden vorherigen Schritte auch mit einer anderen Form eines Aufrufs kombiniert werden: 1. / 2. / 3. Deklarieren, Initialisieren und Füllen des Arrays mit vorgegebenen Werten Dies geschieht mittels direkter literaler Adressierung, z.b.: double[] Datenfeld = {5.4, 3.7, 4.4, 4.8; oder double[] Datenfeld = new double[] {5.4, 3.7, 4.4, 4.8; Das Array Datenfeld[] mit diesen 4 Elementen vom Typ double wird dabei automatisch erzeugt. Ein mehrdimensionales Array kann so ebenfalls mittels geschachtelter Adressierung der Elemente erzeugt werden, z.b.: int[][] Matrix = {{1, 2, {3, 4; oder int[][] Matrix = new int[][] {{1, 2, {3, 4; Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Zugriff auf Array-Elemente Das Programm Array1 zeigt nochmals die unterschiedlichen Möglichkeiten, Arrays zu deklarieren, zu initialisieren und mit Werten zu belegen. public class Array1{ // Deklaration double[] Datenfeld1; int[][] Matrix1; // Initialisierung Datenfeld1 = new double[4]; Matrix1 = new int[2][2]; // Deklaration und Initialisierung in einem Schritt double[] Datenfeld2 = new double[4]; int[][] Matrix2 = new int[2][2]; // alles auf einmal double[] Datenfeld3 = {5.4, 3.7, 4.4, 4.8; int[][] Matrix3 = {{1, 2, {3, 4; // ODER: alles auf einmal //double[] Datenfeld3 = new double[] {5.4, 3.7, 4.4, 4.8; //int[][] Matrix3 = new int[][] {{1, 2, {3, 4; // Werte zuweisen Datenfeld2[1] = 888; Matrix2[1][1] = 999; System.out.println("Datenfeld1[0]="+Datenfeld1[0]); System.out.println("Datenfeld2[0]="+Datenfeld2[0]); System.out.println("Datenfeld2[1]="+Datenfeld2[1]); System.out.println("Datenfeld3[0]="+Datenfeld3[0]); System.out.println("Matrix1[0][0]="+Matrix1[0][0]); System.out.println("Matrix2[0][0]="+Matrix2[0][0]); System.out.println("Matrix2[1][1]="+Matrix2[1][1]); System.out.println("Matrix3[0][0]="+Matrix3[0][0]); System.out.println("Matrix3[1][0]="+Matrix3[1][0]); System.out.println("Matrix3[0][1]="+Matrix3[0][1]); System.out.println("Matrix3[1][1]="+Matrix3[1][1]); Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Zugriff auf Array-Elemente Das Programm Array1 zeigt das nachträgliche Zuweisen von Werten zu Elementen eines Arrays. Dies erfolgt durch die direkte Adressierung der Array-Elemente über ihre Indizes, z.b.: Matrix[1][1]=999; In die 2. Zeile und 2. Spalte des Arrays Matrix wird der Wert 999 eingetragen. public class Array1{ // Deklaration double[] Datenfeld1; int[][] Matrix1; // Initialisierung Datenfeld1 = new double[4]; Matrix1 = new int[2][2]; // Deklaration und Initialisierung in einem Schritt double[] Datenfeld2 = new double[4]; int[][] Matrix2 = new int[2][2]; // alles auf einmal double[] Datenfeld3 = {5.4, 3.7, 4.4, 4.8; int[][] Matrix3 = {{1, 2, {3, 4; // ODER: alles auf einmal //double[] Datenfeld3 = new double[] {5.4, 3.7, 4.4, 4.8; //int[][] Matrix3 = new int[][] {{1, 2, {3, 4; // Werte zuweisen Datenfeld2[1] = 888; Matrix2[1][1] = 999; System.out.println("Datenfeld1[0]="+Datenfeld1[0]); System.out.println("Datenfeld2[0]="+Datenfeld2[0]); System.out.println("Datenfeld2[1]="+Datenfeld2[1]); System.out.println("Datenfeld3[0]="+Datenfeld3[0]); System.out.println("Matrix1[0][0]="+Matrix1[0][0]); System.out.println("Matrix2[0][0]="+Matrix2[0][0]); System.out.println("Matrix2[1][1]="+Matrix2[1][1]); System.out.println("Matrix3[0][0]="+Matrix3[0][0]); System.out.println("Matrix3[1][0]="+Matrix3[1][0]); System.out.println("Matrix3[0][1]="+Matrix3[0][1]); System.out.println("Matrix3[1][1]="+Matrix3[1][1]); Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting

4 4.1.2 Zugriff auf Array-Elemente Das Programm Array2 zeigt eine Variante, bei der die Länge eines Arrays abgefragt wird. Dazu dient die Operation.length, die auf die entsprechende Array-Variable angewendet wird: Anzahl Zeilen: b.length Anzahl Spalten: b[0].length Bei mehrdimensionalen Arrays, kann damit die Länge der einzelnen Dimensionen des Arrays abgefragt werden. public class Array2{ // Initialisierung double[] a = {5.4, 3.7, 4.4, 4.8; int[][] b = {{1, 2, {3, 4, {5, 6; System.out.println("Laenge von a = " + a.length); System.out.println("a[0] = " + a[0]); System.out.println("a[1] = " + a[1]); System.out.println("a[2] = " + a[2]); System.out.println("a[3] = " + a[3]); System.out.println("\nZeilen von b = " + b.length); System.out.println("Spalten von b = " + b[0].length); System.out.println("b[0] = "+b[0][0]+" "+b[0][1]); System.out.println("b[1] = "+b[1][0]+" "+b[1][1]); System.out.println("b[2] = "+b[2][0]+" "+b[2][1]); Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Dreiecksmatrizen Wird ein Array mit Zahlen gefüllt, spricht man von einer Matrix. Meist sind Matrizen viereckig, wie a, oftmals sogar quadratisch (Anzahl an Zeilen und Spalten gleich): a = In beiden Fällen ist es egal, ob man die Anzahl an Spalten mit a[0].length oder a[1].length usw. abfragt. Anders sieht es bei Dreiecksmatrizen wie c oder bei solchen Matrizen wie b aus, bei denen die Anzahl der Einträge pro Zeile (also die Anzahl an Spalten) variiert: 1 c = b = Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Dreiecksmatrizen In diesem Fall ist es ein Unterschied, ob man die Anzahl an Spalten mit b[0].length oder b[1].length usw. abfragt, da die Zeilen eine verschiedene Anzahl an Einträgen respektive Spalten haben. Dies zeigt auch das Programm Dreiecksmatrix1: public class Dreiecksmatrix1 { int[][] b = {{1,2,3, {2,3,4,5, {3,4,5,6,7; System.out.println("b[0] = "+b[0][0]+" "+b[0][1]+" "+b[0][2]); System.out.println("b[1] = "+b[1][0]+" "+b[1][1]+" "+b[1][2]+" "+b[1][3]); System.out.println("b[2] = "+b[2][0]+" "+b[2][1]+" "+b[2][2]+" "+b[2][3]+" "+b[2][4]); int z = b.length; int s0 = b[0].length; int s1 = b[1].length; int s2 = b[2].length; System.out.println("Zeilen = " + z); System.out.println("Eintraege (=Spalten) in Zeile 0 = " + s0); System.out.println("Eintraege (=Spalten) in Zeile 1 = " + s1); System.out.println("Eintraege (=Spalten) in Zeile 2 = " + s2); Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Referenztyp String Eine besondere Form eines Datenfeldes ist eine Zeichenkette, auch als String bezeichnet. Zeichenketten werden in Java über den Referenztyp String (über die Klasse String) quasi als erweiterter Datentyp ähnlich einem Array mit Elementen vom Typ char definiert. In Anlehnung an die Definition eines Datenfeldes (bzw. einer Klasse) mit dem new-operator wird entsprechend einer String-Variablen eine Zeichenkette zugewiesen. Allerdings steht hier der Inhalt der Zeichenkette in Anführungszeichen: String a = new String("Hello World"); Ebenso ist die Initialisierung einer String-Variablen über die literale Adressierung möglich (Kurzform): String b = "Hello Switzerland"; (In späteren Kapiteln wird die Klasse String und deren Methoden ausführlicher behandelt.) Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting

5 4.1.4 Referenztyp String Das Programm Array3 zeigt, wie die Länge einer Zeichenkette abgefragt wird. Dazu dient die Operation (bzw. Methode).length(), die auf die entsprechende String-Variable angewendet wird, z.b.: a.length() oder b.length() (Warum für Strings.length() und für Arrays.length verwendet werden muss, wird in einem späteren Kapitel erklärt.) public class Array3{ // Initialisierung String a = new String("Hello World"); String b = "Hello Switzerland"; System.out.println(a); System.out.println("Laenge = " + a.length()); System.out.println(b); System.out.println("Laenge = " + b.length()); Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Referenztyp String Mehrmals wurde schon gezeigt, dass mit dem Operator + zwei Strings miteinander verbunden werden können. Allerdings muss man die Operatoren- Priorität, wie in einem der letzten Kapitel angegeben, für die einzelnen Operatoren beachten. Das Beispiel String1 zeigt, dass + einerseits Verknüpfung zweier Strings, andererseits Addition zweier Zahlen bedeuten kann. public class String1 { public static void main(string[] args) { System.out.println("3 + 4 = " ); System.out.println("3 + 4 = " + (3 + 4)); Im ersten Fall lautet die Ausgabe = 34 (ausschließlich Verknüpfung von Strings). Im Zweiten Fall = 7 (Addition von 3+4 und dann Verknüpfung von Strings). Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Kopieren von Datenfeldern Während die Werte von Variablen sehr einfach kopiert werden können (variable2 = variable1), muss man beim Kopieren von Datenfeldern unterscheiden, ob man die Referenz auf ein Datenfeld kopieren oder die Inhalte eines Datenfeldes kopieren will. Referenz auf Datenfeld kopieren Inhalte eines Datenfeldes kopieren Referenz auf Datenfeld kopieren Inhalte eines Datenfeldes kopieren Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting

6 4.1.5 Kopieren von Datenfeldern Referenz kopieren heißt, dass nicht nur die Variable feld1 auf das gesamte Datenfeld zeigt, sondern danach auch die Variable feld2 auf dasselbe gesamte Datenfeld. Wird ein Eintrag in diesem Datenfeld geändert, ist er natürlich in beiden Variablen geändert, wie Programm Feldkopie1 verdeutlicht. public class Feldkopie1 { int[] feld1 = {1,2,3; int[] feld2 = feld1; // Referenz wird kopiert. // D.h. feld1 und feld2 zeigen auf denselben Speicherbereich Kopieren von Datenfeldern Datenfeld kopieren bzw. Inhalte eines Datenfeldes kopieren heißt, dass vom gesamten Inhalt des Datenfeldes feld1 eine Kopie feld2 angelegt wird. Wird ein Eintrag in einem Datenfeld geändert, ist er natürlich nur in der dazugehörigen Variablen geändert, wie Programm Feldkopie2 verdeutlicht. public class Feldkopie2 { int[] feld1 = {1,2,3; int[] feld2 = new int[3]; // Inhalte des Datenfelds werden kopiert. feld2[0] = feld1[0]; feld2[1] = feld1[1]; feld2[2] = feld1[2]; feld2[1] = 8; Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting feld2[1] = 8; Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Kopieren von Datenfeldern Eine elegantere Art, komplette Datenfelder bzw. komplette Inhalte von Datenfeldern zu kopieren, ermöglicht die Methode.clone(). Der Ausdruck feld2 = (int[]) feld1.clone(); kopiert den gesamten Inhalt der Variable feld1 auf ein Mal in die Variable feld2, wie Programm Feldkopie3 verdeutlicht. Der Ausdruck (int[]) ist ein explizites Casting zu einem Array des Datentyps int. Es muss von dem Datentyp sein, in dem auch die Felder definiert sind, also hier int[]. (Wird später noch ausführlicher erklärt.) public class Feldkopie3 { int[] feld1 = {1,2,3; int[] feld2 = new int[3]; // Inhalte des Datenfelds werden auf elegante Art kopiert. feld2 = (int[]) feld1.clone(); feld2[1] = 8; Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Kopieren von Datenfeldern Das Kopieren von Strings verhält sich dahingegen wieder so, wie bei normalen Variablen. D.h. es wird eine neue Variable angelegt (keine neue Referenz) und nur diese wird geändert, wie Programm Feldkopie4 verdeutlicht. (Die Methode.clone() kann hier nicht angewendet werden, da sie nur für Objekte, die Referenzen verwenden, definiert ist und daher nicht für Zeichenketten.) public class Feldkopie4 { String feld1 = "Hallo Welt"; String feld2 = feld1; System.out.println("feld1 = "+feld1); System.out.println("feld2 = "+feld2); feld2 = "Hallo Oma"; System.out.println("feld1 = "+feld1); System.out.println("feld2 = "+feld2); Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting

7 4.2 Parameterübergabe 4 Datenfelder, Parameterübergabe, Casting 4.1 Datenfelder 4.2 Parameterübergabe 4.3 Casting 4.2 Parameterübergabe Beim Aufruf von Java-Programmen mittels va JavaProgramm können auch Parameter an das Programm bei Programmaufruf übergeben werden, z.b.: va JavaProgramm Parameter1 Parameter2 Intern werden diese Parameter in dem Array args[] von String-Variablen innerhalb der Befehlszeile abgelegt. public static void main (String[] args) Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Parameterübergabe Damit handelt es sich bei args um ein Array von String-Variablen, dessen Länge erst beim Aufruf des Java-Programms festgelegt wird. Auf die einzelnen Einträge (die einzelnen Strings) dieses Arrays wird mittels args[] zugegriffen. 4.2 Parameterübergabe Betrachten Sie folgendes Programm: public class Parameterinput1 { System.out.println(args[0]); Werden nun beim Aufruf des Programms Parameter eingegeben, va Parameterinput1 Parameter1 Parameter2 so werden diese in der angegebenen Reihenfolge in der Array-Variablen args[] als String abgelegt: args[0] beinhaltet Parameter1 args[1] beinhaltet Parameter2 usw. Die Zeile System.out.println(args[0]) gibt nun den Parameter in args[0] wieder aus. Achtung: Wird auf mehr Parameter zugegriffen, als eingegeben wurden, erzeugt der Java-Interpreter eine Fehlermeldung! Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting

8 4.3 Casting 4.1 Datenfelder 4.2 Parameterübergabe 4.3 Casting Automatische Typenkonvertierung Type-Cast-Operator 4.3 Casting Casting ist die Typenkonvertierung, die es erlaubt, den Wert einer Variablen von einem bestimmten Typ einer anderen Variablen mit einem anderen Datentyp zuzuweisen. Dies entspricht quasi dem Ändern eines Datentyps einer Variablen. Nicht alle Konvertierungen von einem Typ in einen anderen sind aber zulässig. Manche Typenkonvertierungen sind zulässig, führen aber zu einem Verlust an Genauigkeit der Werte. Manche Konvertierungen werden vom Compiler automatisch vorgenommen, ohne dass der Programmierer explizit etwas programmieren muss, z.b.: Bei einer Zuweisung, wenn Typ der Variablen und Typ des zugewiesenen Ausdrucks nicht identisch sind. Bei der Auswertung eines arithmetischen Ausdrucks, wenn Operanden von unterschiedlichem Datentyp sind. Wenn der Wertebereich über- oder unterschritten wird. Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Automatische Typenkonvertierung Variablen vom Typ byte haben einen Wertebereich von 128 bis 127. Wird nun a+b=125+7 mit byte-variablen gerechnet, so wird das Ergebnis automatisch in einen grösseren Typ transformiert (in Java ist das für Ganzzahlen immer int). public class Casting1{ byte a = 125; byte b = 7; System.out.println("a+b = " + (a+b)); System.out.println("a+b = " + a + b); int c = 7; int d = 2; float e, f, g; f = c / d; e = c; g = e / d; System.out.println("e = " + e); System.out.println("c/d = " + (c/d)); System.out.println("f = " + f); System.out.println("g = " + g); Type-Cast-Operator In Java gibt es einen Type-Cast-Operator, mit dem explizite Typenumwandlungen vorgenommen werden können. Der Ausdruck (Datentyp)a wandelt bzw. konvertiert die Variable a in eine Variable vom Typ Datentyp um. Typenumwandlungen mit dem Type-Cast-Operator sind für alle primitiven Datentypen ausser boolean möglich. Daraus ergeben sich folgende Type-Cast-Operatoren: Zwei Variablen vom Typ int liefern (byte) a konvertiert a in den Typ byte bei der Division (c/d) nur einen (short) a konvertiert a in den Typ short Ganzzahlwert, selbst wenn das (int) a konvertiert a in den Typ int Ergebnis einer float-variablen (f) (long) a konvertiert a in den Typ long zugewiesen wird. (float) a konvertiert a in den Typ float (double) a konvertiert a in den Typ double Wird allerdings eine int-variable (char) a konvertiert a in den Typ char einer float-variablen zu gewiesen Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting (e=c), wird der Ganzzahlwert in Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting 32

9 4.3.2 Type-Cast-Operator Da die byte-variablen einen Wertebereich von bis 127 haben, die Berechnung von a+b=125+7 aber ein grösseres Ergebnis liefert, ist dieses Ergebnis vom Typ int. Wird der Wert dann mittels Casting wieder in eine byte-variable transformiert (z=(byte)(a+b)), läuft diese Variable über ihren gültigen Wertebereich hinaus, beginnt wieder bei 128 und erhält dann den byte-wert 124. Zwei Variablen vom Typ int liefern bei der Division (c/d) einen Ganzzahlwert. Wird jedoch eine der int-variablen vorher in eine float- Variable konvertiert, (float)c, wird auch eine Gleitzahldivision durchgeführt. Der Wert 65 wird in das Zeichen 'A' umgewandelt. diese Umwandlung geht darauf zurück, dass der Unicode von 'A' der Integerwert 65 ist. D.h. (char) 65 ergibt 'A', also A auf dem Bildschirm ohne Anführungszeichen. public class Casting2{ byte a = 125; byte b = 7; byte z; z = (byte)(a+b); System.out.println("a+b = " + (a+b)); System.out.println("a+b = " + z); int c = 7; int d = 2; float f; f = (float)c / d; System.out.println("f = " + f); System.out.println((char) 65); 4.3 Casting Die Tabelle zeigt, welche Typenkonvertierungen von Typ1 in Typ2 in Java möglich sind: ) Typ2 = Typ1; (automatische Typenkonvertierung) ) ) Typ1 Typ2 byte short int long float double Typ2 = (Casting-Typ) Typ1; (Casting-Operator notwendig) Casting von Typ1 in Typ2 nicht möglich boolean char byte short int long float double boolean char Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting Lernziele Wissen, wie man in Java Datenfelder anlegt und auf die einzelnen Einträge in den Datenfeldern zugreift. Arrays mit den primitiven Variablen und Strings anlegen und kopieren können. Den Unterschied zwischen Referenz kopieren und Daten kopieren verstanden haben. Matrizen (normale, Dreiecksmatrizen, unterschiedliche Spaltenzahl) anlegen können und auf Zeilen und Spalten zugreifen können. Parameterübergabe anwenden können. Das Prinzip des Casting (explizit und automatisch) verstanden haben und richtig einsetzen können. Prof. Dr. Rolf Dornberger OOP: 4 Datenfelder, Parameterübergabe, Casting

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

1. Referenzdatentypen: Felder und Strings

1. Referenzdatentypen: Felder und Strings 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! 5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656

Mehr

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?) 5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 9.5.07 Übersicht 1 Was sind? 2 Vereinbarung von n 3 Erzeugen von n 4 Zugriff auf Feldkomponenten 5 Mehrdimensionale 6 als Objekte, Referenzen Kopieren

Mehr

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile

Mehr

Programmiervorkurs Einführung in Java Tag 1

Programmiervorkurs Einführung in Java Tag 1 Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,

Mehr

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik Programmieren I Arrays Heusch 7.2 Ratz 5.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arrays: Definition Arrays (dt. Felder) dienen zum Speichern mehrerer gleichartiger Daten

Mehr

Informatik Vorkurs - Vorlesung 2

Informatik Vorkurs - Vorlesung 2 Informatik Vorkurs - Vorlesung 2 Variablen, Arrays, Zahlensysteme Torben Achilles, 9. Oktober 2018 Inhalt Variablen & Datentypen Arrays Zahlensysteme 9. Oktober 2018 Torben Achilles Informatik Vorkurs

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik Programmieren I Arrays Heusch 7.2 Ratz 5.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arrays: Definition Arrays (dt. Felder) dienen zum Speichern mehrerer gleichartiger Daten

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Strings Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Beispiel: String zeile = "Cusanus-Gymnasium Wittlich";

Mehr

3.2 Datentypen und Methoden

3.2 Datentypen und Methoden Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen. 3.8 Objekttypen und Arrays Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.8-1 Primitive Datentypen

Mehr

Java Referenzdatentypen genauer betrachtet

Java Referenzdatentypen genauer betrachtet Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen

Mehr

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Übungsblatt 1. Java Vorkurs (WS 2017)

Übungsblatt 1. Java Vorkurs (WS 2017) Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf

Mehr

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

Anregungen zu Übung 2

Anregungen zu Übung 2 Anregungen zu Übung 2 Allgemeine Informatik II - SS 2007 Was sind Arrays und wie kann man sie verwenden? Ein Array ist ein spezieller Datentyp, der mehrere Werte zu einer Einheit zusammenfasst. Er ist

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches

Mehr

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben Datenfelder (Array) Seite 1 von 7 Bei den bisherigen Programmen wurde für jede verwendete Variable (oder für jedes Objekt) ein eigener Typ und Name vergeben. Die Initialisierung, d.h. die Belegung mit

Mehr

Ausdrücke der Programmiersprache Java

Ausdrücke der Programmiersprache Java Ausdrücke der Programmiersprache Java Hamburg 1 Ablauf des Vortrags 01. Eigenschaften von Ausdrücken 02. Arithmetische Operatoren 03. Relationale Operatoren 04. Logische Operatoren 05. Bitweise Operatoren

Mehr

Java Datentypen und Variablen

Java Datentypen und Variablen Informatik 1 für Nebenfachstudierende Grundmodul Java Datentypen und Variablen Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010 Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den

Mehr

Felder, Zeiger und Adreßrechnung

Felder, Zeiger und Adreßrechnung Felder, Zeiger und Adreßrechnung Felder bestehen aus Variablen eines einzigen Datentyps. Bisher kennen wir eindimensionale Felder. In C sind Felder mit beliebigen Dimensionen möglich. Unsere räumliche

Mehr

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays Objekttypen Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays Primitive- und Objekt-Datentypen Primitive Datentypen benötigen einen vorher genau

Mehr

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke Java 3 Markus Reschke 08.10.2014 Kommentare Kommentare nützlich zum späteren Verständnis Zwei Arten Einzeiliger Kommentar bis zum Zeilenende mit // Mehrzeiliger Kommentar mit /*Text*/ 1 double x = 5; //

Mehr

Mehrdimensionale Arrays

Mehrdimensionale Arrays Mehrdimensionale Arrays Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Eindimensionale Arrays haben wir bereits kennen gelernt. Es gibt aber auch mehrdimensionale Arrays. Die sind auch sehr notwendig, denken

Mehr

Einführung in C. EDV1-04C-Einführung 1

Einführung in C. EDV1-04C-Einführung 1 Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen } } Beispiele für Anweisungen Wiederholung Ausgabe

Mehr

Kapitel 2: Grundelemente der Programmierung

Kapitel 2: Grundelemente der Programmierung Kapitel 2: Grundelemente der Programmierung Variablen Variablen sind Speicherbereiche im Arbeitsspeicher Anhand eines Namens kann man Werte hineinschreiben und auch wieder auslesen Variablen besitzen ein

Mehr

+ C - Array (Vektoren, Felder)

+ C - Array (Vektoren, Felder) + C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Zeiger, Arrays und Strings in C und C++

Zeiger, Arrays und Strings in C und C++ Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für

Mehr

Ausgabe:

Ausgabe: Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp ZAIK Universität zu Köln WS 07/08 1 / 6 Datentypen Arten von Datentypen

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015 Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von

Mehr

Basiswissen in Informatik

Basiswissen in Informatik Basiswissen in Informatik PD Dr. WS 2006/07 Programmieren I 2 stündige Vorlesung mit Übung Kapitel 2: Typen, Werte, Variablen Ziel: einfache Daten unterscheiden und speichern Nachtrag aus Kapitel 1: Arrays

Mehr

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Schleifen und Arrays Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 06.10.2016 Technische Universität Braunschweig, IPS Überblick Kommentare Typen Kontrollstrukturen Arrays 06.10.2016 Dr. Werner

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile

Mehr

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15 Variablen CoMa-Übung VIII TU Berlin 4.12.2013 CoMa-Übung VIII (TU Berlin) Variablen 4.12.2013 1 / 15 Themen der Übung 1 Typanpassungen 2 Operatoren 3 Variablen-Gültigkeit CoMa-Übung VIII (TU Berlin) Variablen

Mehr

Wertebereich und Genauigkeit der Zahlendarstellung

Wertebereich und Genauigkeit der Zahlendarstellung Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement

Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println(Oops...); false. condition. true. statement Wenn... dann... if (condition) statement condition false true statement if (kontostand < 0) System.out.println("Oops..."); 31 ... sonst... if (condition) statement1 else statement2 condition false true

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

8. Ausdrücke, Operatoren (einfache Typen)

8. Ausdrücke, Operatoren (einfache Typen) 8. Ausdrücke, Operatoren (einfache Typen) Teil 2 Java-Beispiel: Unicode.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 16. Nov. 2015 2 Typumwandlung Cast-Operator 3 Unterschiedliche

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Einführung in die Programmierung für NF MI. Übung 04

Einführung in die Programmierung für NF MI. Übung 04 Einführung in die Programmierung für NF MI Übung 04 Inhalt Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 04 2 Arrays Arrays repräsentieren Reihungen von Objekten, z.b. Variablen

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

8. Ausdrücke, Operatoren (einfache Typen)

8. Ausdrücke, Operatoren (einfache Typen) 8. Ausdrücke, Operatoren (einfache Typen) Typumwandlung Cast-Operator Teil 2 Java-Beispiel: Unicode.java Version: 16. Nov. 2015 Unterschiedliche Typen Typumwandlung: Übersicht Zuweisung x = y; Ausdruck

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-6 5.1.3 Kopieren eindimensionaler Felder... 5-7

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter

Mehr

Programmieren in Java

Programmieren in Java Einführung in die (imperative) Programmierung 2 Wiederholung: Allgemein Hohe Programmiersprache Compiler Interpreter Maschinensprache Zielsystem 3 Wiederholung: Java Java Compiler Bytecode JRE Just-In-Time

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind ausgewählte

Mehr

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata: Informatik mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da aber

Mehr

Brückenkurs Programmieren

Brückenkurs Programmieren Brückenkurs Programmieren Tag 3: Arrays Christopher Schölzel Technische Hochschule Mittelhessen 28. März 2018 Inhalt Arrays Wert- vs Referenzsemantik Einleitung 2 / 19 Inhalt Arrays Wert- vs Referenzsemantik

Mehr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

Mehr

5.3 Auswertung von Ausdrücken

5.3 Auswertung von Ausdrücken 5.3 Auswertung von Ausdrücken Funktionen in Java bekommen Parameter/Argumente als Input, und liefern als Output den Wert eines vorbestimmten Typs. Zum Beispiel könnte man eine Funktion i n t min ( i n

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

INE1 Arrays, Zeiger, Datenstrukturen

INE1 Arrays, Zeiger, Datenstrukturen INE1 Arrays, Zeiger, Datenstrukturen Arrays Felder von Elementen gleichen Typs Verwenden von Adressen: Zeiger Datenstrukturen mit struct Zeiger auf Datenstrukturen Spezielle Zeiger und komplexe Deklarationen

Mehr