Frag zu Feldern mit den Typ einer Klasse

abcd

Mitglied
hi,

ich hab da mal eine Frage zu Feldern. Und zwar soll ich ein Feld vereinbaren für 24 verschiedene Uhren. Eine Klasse Names Uhr hab ich schon geschrieben (mit Konstruktor, Methoden und was halt alles dazu gehört. Dem Konstruktor werden Std, Min und Sek als Integer übergeben).

Das Feld für die 24 Uhren soll dann mit der Uhrzeit 6:23:08 belegt werden.

Wenn ich das Feld vereinbare würde das ja ungefähr so aussehen:
Uhr feld_ref = new Uhr [24];

aber wie kann ich das jetzt mit der Uhrzeit belegen?

Das mit den Feldern als Klassen Typ hab ich irgendwie noch nicht ganz raus.

ich hoffe ihr könnt mir helfen.

danke
 
Uhr feld_ref = new Uhr [24];
Muss heissen:
Java:
Uhr[] feld_ref = new Uhr [24];
hiermit ist aber nur ein Feld "angelegt", das 24 Uhren aufnehmen kann. Die 24 Uhren müssen noch erzeugt werden.
Java:
for (int i=0; i<feld_ref.length; i++)
    feld_ref[i] = new Uhr(........); // Wie auch immer der Konstruktor aussieht
 
Soll jede Uhr diese Uhrzeit haben?

Denn durch Uhr[] feld_ref = new Uhr[24] legst du ein Array ein, welches 24 Instanzen der Klasse Uhr halten kann, sprich jeder Index von 0 - 23 ist ein Uhr Objekt. Füllen kannst du das ganze dann mit der for-Schleife, wie es Michael... schon gesagt hat.
 
aber wie kann ich das jetzt mit der Uhrzeit belegen?
"belegen"? Hm, ich setze Werte

so z.B. ?
Java:
feld_ref[7] = new Uhr(6,23,08);
Aber da du uns die Klasse Uhr vorenthälst musste ich wieder mal meine recht unzuverlässige Glaskugel befragen ....

Das mit den Feldern als Klassen Typ hab ich irgendwie noch nicht ganz raus.
"Felder"? Klassentyp? Woher hast du nur diese Ausdrucksweise? Für meine Augen liest sich das sehr gewohnheitsbedürftig ....
Darum einige Erklärungen, denn es vereinfacht das Leben wenn wir alle ungefähr dieselbe Sprache sprechen.

Klassen Typ?
Also Klassen sind Typen und Typen (bis auf einige Ausnahmen wie int, char, boolean ... ) sind Klassen.

"Felder"
Diese Bezeichnung kenne ich nur im Zusammenhangmit Records und das kennt Java nicht.
Die werden als Variablen bezeichnet und sind nicht ein Typ, sie haben einen Typ oder alternativ kann man auch sagen dass eine "Variable von einem Typ ist"


Java:
Uhr meineUhr;
Uhr meineZweiteUhr = new Uhr(7, 37, 53);
Ab jetzt hast du zwei Variablen vom Typ Uhr
meineUhr ist noch ungültig der Zugriff mit
Java:
meineUhr.getTime();
(falls es so eine Methode gibt) würde zu einer Null Pointer Exception führen.

Java:
meineZweiteUhr.getTime();

würde funktionieren.

Du kannt aber jederzeit
Java:
meineUhr = new Uhr(7,27,30)
schreiben und ab dann existiert auch meineUhr und ist auf die Zeit 7:27:30 gesetzt.
Jede Uhr kann ihre eigene Zeit haben - die sind total unabhängig

Um 24 Uhren zu speichern könntest du
Java:
Uhr meineUhr1;
Uhr meineUhr2;
Uhr meineUhr3;
schreiben

allerdings macht das niemand, sondern man legt einen array an

Java:
Uhr[] meineUhren = new Uhren[24];

Achtung: mit new wird ein array mit referenzen auf Uhren, also ein Uhr[] angelegt und noch keine Uhren ....

So, das war genug der Einführung lies doch in der Insel die Kapitel über arrays und vielleicht noch das Kapitel 2.3 Datentypen, Typisierung, Variablen und Zuweisungen
 
Dazu habe ich noch eine frage.
Kann man nicht sofort das Array füllen?
Klar:


Java:
Uhr[] meineUhren = {new Uhr(), new Uhr(), new Uhr(), ... }
Das ist aber aufwendig.
Geht nicht beispielsweise
Uhr[] meineUhren = new Uhren[24]();
?
 
Dazu habe ich noch eine frage.
Kann man nicht sofort das Array füllen?
Klar:


Java:
Uhr[] meineUhren = {new Uhr(), new Uhr(), new Uhr(), ... }
Das ist aber aufwendig.
Geht nicht beispielsweise
Uhr[] meineUhren = new Uhren[24]();
?

Genau das hab ich dir doch oben erklärt ???:L Damit machst du einen Array der Referenzen auf Uhren enthält ...

Weisst du, das ein for loop ist? instanziere die Uhren in einem for-loop ....

Mit einem Befehl lassen sich keine 24 Objekte erzeugen.
 

Neue Themen


Zurück
Oben