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

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

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

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-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

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

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

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

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

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

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

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

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Primitive Datentypen und Felder (Arrays)

Primitive Datentypen und Felder (Arrays) Primitive Datentypen und Felder (rrays) Primitive Datentypen Java stellt (genau wie Haskell) primitive Datentypen für Boolesche Werte, Zeichen, ganze Zahlen und Gleitkommazahlen zur Verfügung. Der wichtigste

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

8 Typwandlungen. 8.1 Automatische Typkonvertierungen

8 Typwandlungen. 8.1 Automatische Typkonvertierungen 8 Typwandlungen Hier geben wir Ihnen weitere Informationen zu Goto Java 2, die Sie ergänzend zu Hausaufgabe 3 lesen sollten. Sie sollten für die weiteren Ausführungen zunächst in Go To Java Kapitel 4.6

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Prinzipielle Ausführungsvarianten I

Prinzipielle Ausführungsvarianten I Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Unser erstes Java Programm AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 39 Hello World!

Mehr

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt Inhalt 1. Einführung 2. Array-Komponenten von elementaren Datentypen 3. Array-Komponenten sind Objekte 4. Array als Parameter 5. Kopieren von Arrays 6. Beispiel 7. Vector versus Array Folie 1 Lernziele

Mehr

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein Datenfelder (Arrays) Vektoren, Matrizen, Tabellen Dr. Beatrice Amrhein Überblick Eindimensionale Arrays o Deklaration, Initialisierung, Zugriff Mehrdimensionale Arrays o Deklaration, Initialisierung, Zugriff

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Objektorientierte Programmierung OOP Programmieren mit Java 5.1 Elementare Anweisungen 5.1.1 Ausdrucksanweisung 5.1.2 Leere Anweisung 5.1.3 Blockanweisung 5.1.4 Variablendeklaration 5.2 Bedingungen 5.2.1

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Objektorientierte Programmierung OOP Programmieren mit Java 7.1.1 Anweisungen 7.1.2 Verzweigungen aufgrund von Bedingungen 7.1.3 Wiederholungen mit Schleifen 7.1.4 Blöcke, Funktionen, Objekte 7.2 Wiederholung

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 16. Mai 2009 Inhaltsverzeichnis

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte

Mehr

Objektorientierte Programmierung. Kapitel 9: Arrays

Objektorientierte Programmierung. Kapitel 9: Arrays Stefan Brass: OOP (Java), 9. Arrays 1/43 Objektorientierte Programmierung Kapitel 9: Arrays Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Ab J2SE 5.0 Unterstützung formatierter Bildschirmausgaben. Mit den Operatoren und Klammern können Boolesche Ausdrücke gebildet werden Beispiel:

Ab J2SE 5.0 Unterstützung formatierter Bildschirmausgaben. Mit den Operatoren und Klammern können Boolesche Ausdrücke gebildet werden Beispiel: Die Funktionen print() und println() Die Funktion System.out.printf() Format eines Funktionsaufrufs funktionsname(); Innerhalb der Klammern können Argumente angegeben werden Die Funktion kann ein Ergebnis

Mehr

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte 4. Datentypen Einleitung Eingebaute Datentypen Übersicht Die Datentypen char, float und double Standardwerte Konversion / Type-Cast Datentyp von Literalen Operatoren Ausdrücke Allgemeine Informatik 2 SS09

Mehr

Java-Vorkurs 2015. Wintersemester 15/16

Java-Vorkurs 2015. Wintersemester 15/16 Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Stefan Brass: OOP (Java), 15. Überladene Methoden 1/22 Objektorientierte Programmierung Kapitel 15: Überladene Methoden Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013 Programmiervorkurs Wintersemester 2012/2013 Organisation: Steffen Gebert, Alexander Wolff Tutoren: Jürgen Zöller, Jonathan Stoll Kontakt (für Organisatorisches, Fehler auf Folien...): Steffen Gebert steffen.gebert@informatik.uni-wuerzburg.de

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Themen der Übung. Java. Java installieren. Java installieren. Installation (Fortsetzung)

Themen der Übung. Java. Java installieren. Java installieren. Installation (Fortsetzung) Themen der Übung Java CoMa-Übung II TU Berlin 1 Java-Installation Hello World 3 Temperature 4.10.01 CoMa-Übung II (TU Berlin) Java 4.10.01 1 / 8 CoMa-Übung II (TU Berlin) Java 4.10.01 / 8 Java installieren

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung Guido Krüger Handbuch der Java-Programmierung 4. Auflage An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam 4 4.1 Lexikalische

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 Lösung der Aufgaben (1/2) Lösung Aufgabe

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

4 Kontrollfluss-Diagramme

4 Kontrollfluss-Diagramme 4 Kontrollfluss-Diagramme In welcher Weise die Operationen eines Programms nacheinander ausgeführt werden, läßt sich anschaulich mithilfe von Kontrollfluss-Diagrammen darstellen. Ingredienzien: Start Stop

Mehr

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Verbunde, Reihungen, Zeiger Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Typen 6.2.5 Primitive

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

OO Programmierung in Java

OO Programmierung in Java OO Programmierung in Java Einführung WS 212/213 Prof. Dr. Margarita Esponda M. Esponda-Argüero 1 Homepage Homepage http://www.esponda.de/ws_12_13/jbk Vorlesungsfolien Literaturliste Übungen Zusätzliches

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

HEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion

HEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion 17.11.04 1 HEUTE 17.11.04 3 Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: was ist Effizienz? vollständige Induktion JAVA: Arrays die for -Schleife die Sprunganweisungen break und continue

Mehr

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Aufgaben: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge Objektorientierte Programmierung OOP Programmieren mit Java 1. Installation von Java 2. Erstes Java Programm Hello World 3. Dreimal Hallo Olten 2

Mehr

Selbsteinstufungstest Vorkurs Programmieren

Selbsteinstufungstest Vorkurs Programmieren VPR Selbsteinstufungstest Vorkurs Programmieren Zeit 90 Minuten Aufgabe 1: Einzigartig (10 Punkte) Schreiben Sie eine Methode die angibt, ob ein String str1 in einem zweiten String str2 genau einmal vorkommt.

Mehr

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken Im Folgenden finden Sie jeweils die korrekte Antwort zu den im Buch abgedruckten Prüfungsfragen, soweit die Antworten in Textform

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Grundlagen der Programmiersprache C++

Grundlagen der Programmiersprache C++ / TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays 1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java Grundlagen von Java Aufgabe 1: Typen und Zuweisungen in Java Welche der folgenden Java-Anweisungen sind fehlerhaft? Handelt es sich um einen Compiler- oder einen Laufzeitfehler? Anmerkung: Folgefehler

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

Allgemeine Informatik 1 (AI1)

Allgemeine Informatik 1 (AI1) Allgemeine Informatik 1 (AI1) Wintersemester 2011/2012 Programmieren Modul 7 Typen, Zahlen, for-schleife, diverses Prof. Dr.-Ing. Matthias Hollick Technische Universität Darmstadt Fachbereich Informatik

Mehr

3. Grundlegende Sprachkonstruktionen imperativer Programme

3. Grundlegende Sprachkonstruktionen imperativer Programme 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 4. Nov. 2015 2 Schwerpunkte

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

Variablen und Konstanten

Variablen und Konstanten Variablen und Konstanten Variablen und Konstanten werden benötigt, um sich in Prozeduren Werte zu merken oder zu übergeben. Es gibt numerische Werte (1 / 10,9) und es gibt alphanumerische Zeichenfolgen

Mehr