16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

2.2.3 Datenfel<strong>de</strong>r (Arrays)<br />

E<strong>in</strong> Datenfeld (Array) ist e<strong>in</strong>e Ansammlung von Objekten e<strong>in</strong>es bestimmten Typs 1 ,<br />

die über e<strong>in</strong>en laufen<strong>de</strong>n In<strong>de</strong>x adressierbar s<strong>in</strong>d. Gegenüber „normalen Objekten“<br />

haben Arrays zwei wesentliche E<strong>in</strong>schränkungen:<br />

1. Arrays haben ke<strong>in</strong>e Konstruktoren. Statt <strong>de</strong>ssen wird <strong>de</strong>r Operator new mit spezieller Syntax<br />

aufgerufen.<br />

2. Es können ke<strong>in</strong>e Subklassen e<strong>in</strong>es Datenfelds <strong>de</strong>f<strong>in</strong>iert wer<strong>de</strong>n.<br />

Datenfel<strong>de</strong>r gehören zu <strong>de</strong>n Referenzvariablen 1 . Arrays können je<strong>de</strong>n Wertetyp<br />

(primitiver Typ o<strong>de</strong>r Objekt) enthalten, jedoch können <strong>in</strong> e<strong>in</strong>em Array ke<strong>in</strong>e<br />

unterschiedlichen Typen gespeichert wer<strong>de</strong>n.<br />

Arrays <strong>in</strong> <strong>Java</strong> s<strong>in</strong>d Objekte und unterschei<strong>de</strong>n sich von Datenfel<strong>de</strong>rn <strong>in</strong> an<strong>de</strong>ren<br />

Programmiersprachen durch folgen<strong>de</strong> Merkmale:<br />

- Array-Variable s<strong>in</strong>d Referenzen<br />

- Arrays besitzen Metho<strong>de</strong>n und Instanz-Variable<br />

- Arrays wer<strong>de</strong>n zur Laufzeit erzeugt<br />

2.2.3.1 Deklarieren, Erstellen von Array-Objekten<br />

In <strong>Java</strong> umfaßt das Erstellen e<strong>in</strong>es Datenfelds drei Schritte:<br />

1. Deklaration e<strong>in</strong>er Variablen zur Aufnahme e<strong>in</strong>es Datenfelds.<br />

Array-Variable zeigen <strong>de</strong>n Objekttyp an, <strong>de</strong>n das Datenfeld aufnimmt und <strong>de</strong>n namen<br />

<strong>de</strong>s Arrays, gefolgt von leeren eckigen Klammern „[]“, z.B: <strong>in</strong>t x[]. Alternativ<br />

dazu kann e<strong>in</strong>e Array-Variable auch so (Klammern nach <strong>de</strong>m Typ) festgelegt se<strong>in</strong>,<br />

z.B. <strong>in</strong>t[] x.<br />

2. Erstellen e<strong>in</strong>es neuen Array-Objekts und Zuweisen e<strong>in</strong>er Array-Variablen.<br />

Das kann erfolgen<br />

- mit new, z.B. Str<strong>in</strong>g[] namen = new Str<strong>in</strong>g[10];<br />

Hier wird e<strong>in</strong> neues Datenfeld von Str<strong>in</strong>gs mit 10 Elementen erstellt. Beim Erstellen<br />

e<strong>in</strong>es Array-Objekts mit new ist anzugeben, wieviele Elemente das Array<br />

aufnehmen soll. Alle Elemente <strong>de</strong>s Array wer<strong>de</strong>n automatisch <strong>in</strong>itialisiert (0 für<br />

numerische Datenfel<strong>de</strong>r, false für boolesche, ‘\0‘ für Zeichen-Arrays und „null“<br />

für alles an<strong>de</strong>re.<br />

Bsp.: Erzeugen von Datenfel<strong>de</strong>rn mit „new“<br />

a) Aufnahme von Werten primitiver Typen<br />

import java.util.*;<br />

public class FeldPrim<br />

{<br />

static Random rand = new Random();<br />

static <strong>in</strong>t zRand(<strong>in</strong>t mod)<br />

{<br />

return Math.abs(rand.nextInt()) % mod;<br />

}<br />

public static void ma<strong>in</strong>(Str<strong>in</strong>g[] args)<br />

155 Es kann sich dabei um primitive Variablentypen (byte, char, short, <strong>in</strong>t, long, float, double, boolean), aber<br />

auch um an<strong>de</strong>re Datenfel<strong>de</strong>r (verschachtelte Arrays) o<strong>de</strong>r Objekte han<strong>de</strong>ln.<br />

156 Es gibt drei Arten von Referenzvariablen: Klassen, Schnittstellen und Datenfel<strong>de</strong>r<br />

159

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!