Grundlagen der Objektorientierten Programmierung - Statische Arrays

Ähnliche Dokumente
Grundlagen der Objektorientierten Programmierung Static

Grundlagen der Objektorientierten Programmierung - IO-Tools

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden.

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

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

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

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!

Tag 4 Repetitorium Informatik (Java)

Anregungen zu Übung 2

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

Teil 2: Weitere Aspekte der Objektorientierung

Tag 4 Repetitorium Informatik (Java)

Erste Java-Programme (Arrays und Schleifen)

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

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

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

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

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

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

+ C - Array (Vektoren, Felder)

Propädeutikum zur Programmierung

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Javakurs für Anfänger

Einstieg in die Informatik mit Java

Dr. Monika Meiler. Inhalt

Javakurs für Anfänger

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

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.

Einstieg in die Informatik mit Java

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

1. Referenzdatentypen: Felder und Strings

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

Java Einführung Klassendefinitionen

Martin Unold INFORMATIK. Geoinformatik und Vermessung

10. Felder (Arrays) Teil 2. Java-Beispiele: Echo.java Primzahlen.java Monate.java. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Arrays. Einleitung. Deklarieren einer Array Variablen

9. Vektoren. (auch Felder/array)

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Klassen als Datenstrukturen

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

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

ÜBUNGS-BLOCK 7 LÖSUNGEN

Algorithmen und Datenstrukturen

Elementare Datentypen in C++

Dr. Monika Meiler. Inhalt

Ausgabe:

Einstieg in die Informatik mit Java

3.2 Datentypen und Methoden

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

2 Programmieren in Java I noch ohne Nachbearbeitung

Grundlagen der Informatik Enums, Strings und Arrays

9. Java Arrays und Strings. Allokation, Referenzen, Elementzugriff, Mehrdimensionale Arrays, Strings, Stringvergleiche

Grundlagen der Objektorientierten Programmierung - Methoden -

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Repetitorium Informatik (Java)

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

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

Vorkurs Informatik WiSe 16/17

11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell

Objektorientierte Programmierung OOP Programmieren mit Java

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Informatik II. Woche 10, Giuseppe Accaputo

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

Dr. Monika Meiler. Inhalt

II.4.1 Unterklassen und Vererbung - 1 -

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

II.4.1 Unterklassen und Vererbung - 1 -

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08

13. Java Klassen. Lernziele. Klassen - Technisch. Definition: Klassen

13. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung, statische Felder und Methoden

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Einführung in die Programmierung für NF. Arrays

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Zentralübung Grundlagen der Programmierung

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

Einführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

1 Klassen und Objekte

Implementieren von Klassen

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

Wir wollen in einer Bank die Konten der Kunden modellieren (um sie dann entspr. zu verarbeiten

Tag 8 Repetitorium Informatik (Java)

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

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017

Programmierkurs Java

Programmieren in C/C++ und MATLAB

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Java Referenzdatentypen genauer betrachtet

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Grundlagen der Programmierung

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

7.0 Arbeiten mit Objekten und Klassen

Transkript:

Statische Arrays Ein Array ist ein Behälter für Datenelemente desselben Typs. Arrays können beliebig viele Dimensionen haben. Die Standardform ist das eindimensionale Array, das man sich in Zeilenform vorstellen kann. Ein eindimensionales Array wird auch Vektor genannt. eindimensionales Array (Vektor) [ x ] Bei mehrdimensionalen Arrays müssen alle Zeilen einer Dimension die selbe Länge haben. Die Elemente aller Dimensionen müssen vom selben Datentyp sein. zweidimensionales Array [ y ] [ x ] Ein statisches Array ist ein Objekt der Klasse java.lang.reflect.array, gleichgültig, aus welchem Datentyp die einzelnen Elemente bestehen. Diese Klasse braucht bei der Erzeugung eines Arrays aber nicht genannt werden, da der Compiler die Arrayeigenschaft an den eckigen Klammern erkennt. Bei der Erzeugung eines Arrays muß die maximale Anzahl der Elemente (die Länge des Arrays) angegeben werden. In Java kann die Länge eines Arrays zur Laufzeit festgelegt werden zum Beispiel durch Benutzereingabe. Statische Arrays können prinzipiell alle Arten von Datentypen aufnehmen: Wertdatentypen (elementare Datentypen - int, float, char) Objektdatentypen (selbstdefinierte Objekte, API-Objekte) Die Elemente eines Arrays sind durchnummeriert das erste Element hat den Index [0], das letzte Element den Index [ Länge-1]. Bei mehrdimensionalen Arrays wird die folgende Dimension jeweils links davor erwähnt. Array [ Dimension 2 ] [ Dimension 1 ] Seite 1

Erzeugung eines statischen Arrays Ein Array besteht (wie alle Java-Objekte) aus einem Namen (der Referenzvariable) und dem eigentlichen Objekt, das durch den speziellen Konstruktoraufruf mit Angabe der Array-Länge erzeugt wird. Der Erzeugungsprozeß besteht deshalb auch aus mehreren Teilen: der Datentyp des Arrays wird durch Anhängen von leeren eckigen Klammern festgelegt; der Konstruktoraufruf hat im Unterschied zu allen anderen Java-Objekten eckige statt runde Klammern und enthält die Anzahl der Elemente: 1. Festlegung des Datentyps der Elemente des Arrays, 2. Arraykennzeichen: [ leere eckige Klammern ], 3. Namen des Arrays, 4. Zuweisungsoperator, 5. Erzeugung des Arrayobjekts mit new und [ Anzahl der Elemente ] Es gibt drei Möglichkeiten, ein Array zu erzeigen: 1.) Deklaration und Definition in einer Zeile int [] einvektor = new int [10]; 2.) verzögerte Erzeugung (in zwei Zeilen) int [] einvektor; int einvektor []; //alternativ einvektor = new int [10]; 3.) Initialisierung ohne explizite Längenangabe int [] einvektor = { 3,5,4,2,78,2 ; Seite 2

Elementzugriff Jedes Element eines statischen Arrays wird durch seine Position (den Abstand zum ersten Element) identifiziert, die durch den nullbasierten Index ausgedrückt wird. Auf Elemente des Arrays wird mittels des Index (in eckigen Klammern) zugegriffen. Es gibt keine Zugriffsmethoden (wie bei dynamischen Arrays), sondern es genügt der einfache Zuweisungsoperator =. einvektor[4] = 3; // Element-Zugriff int laenge = 30; double[] doublevektor; // Name des Vektors doublevektor = new double[laenge]; // Vektorobjekt erzeugen for(int i = 0; i < doublevektor.length; i++) doublevektor[i] = i; // Elemente einlesen Länge des Arrays Die int-variable length ist Attribut eines jeden statischen Arrays und gibt die maximale Anzahl der Elemente an. Wenn versucht wird, auf Array-Elemente zuzugreifen, die außerhalb der deklarierten Bereichsgrenzen liegen, meldet der Java-Compiler keinen Fehler. Erst zur Laufzeit meldet der Java-Interpreter einen Fehler. java.lang.arrayindexoutofboundsexception at... class vektortest { int [] vektor; vektor = new int[10]; // Statischer Vektor vom Typ int // 10 Elemente for (int i=0; i < 15; i++) System.out.println(vektor[i]); // Exception bei vektor[10] Seite 3

Die Basisklasse java.lang.reflect.array bietet einige nützliche Methoden, die zum Auslesen und Manipulieren der Elemente eines Arrays eingesetzt werden können: import java.lang.reflect.array; class vektortest { int [] vektor = new int[10]; System.out.println("Der Vektor hat Platz fuer " + Array.getLength(vektor) + " Elemente"); Auch die Klasse java.util.arrays bietet weitere nützliche Methoden, die auf Arrays angewendet werden können. Es gibt z.b. Methoden zum Suchen nach Elementen und Sortieren des ganzen Arrays: import java.util.*; class vektorsort { int vektor[] = {2,5,1,7,5,6,8,0; Arrays.sort(vektor); System.out.println(vektor[i]); // 0 1 2 3 4 5 6 7 8 Seite 4

Statische Arrays aus Objekten Wie bereits erwähnt, können statische Arrays nicht nur elementare Wertdatentypen (int, float, char...) aufnehmen, sondern auch Objekte jeglicher Art (auch selbstdefinierte). Objekt-Arrays werden in Programmen oft eingesetzt, um viele Objekte auf einfache Weise zu verwalten. Damit wird vermieden, daß jedes einzelne Objekt einen eigenen Namen besitzen muß und das Element kann einfach über seinen Index angesprochen werden. BEISPIEL ////////////////////////////////////////////////////// // Objekte werden in einem dynamischen Vektor erzeugt class Student02 { int matrikelnr; // Attribute double einkommen; String vorname, nachname; public Student02( ) { // KONSTRUKTOR: this.matrikelnr = 1; this.einkommen = 2000; this.vorname = "default"; this.nachname = "default"; System.out.println("Konstruktor aufgerufen..."); public void gibaus() { // Objekt-Attribute ausgeben System.out.println("\nStudent:"+vorname + " " + nachname); System.out.println("Einkommen: " + einkommen); System.out.println("MatrikelNr:" + matrikelnr); public static void main(string args[]) { System.out.print("Wieviele Studenten?"); int anzahl = In.readInt(); Student02[] vektor = new Student02 [anzahl]; vektor[i] = new Student02(); // Objekt vektor[i].gibaus(); Seite 5