Erste Schritte Viele Objekte einer Klasse "verwalten"

DMSB12

Mitglied
hallo. ich lerne noch, also verzeiht meine Anfängerfrage ;)

Wenn ich eine Klasse (zB. DVDs) habe und nun für jede DVD ein Objekt anlege, dann kann ich die ja nur verwalten, wenn ich die irgendwie indexiere.
Nun meine Frage:

wie macht man das am sinnvllsten? über array, list oder hashset?
und wenn ich die Referenzvariable eines Objektes in einem Array (oder ähnlichen) habe, muss ich dann für jede Variable, die eine Eigenschaft eines Objektes beinhaltet auch in ein Array tun?

steht in dvd[277].titel dann der titel?
 

dayaftereh

Top Contributor
Hey, also es gibt Verschiedene Vor- und Nachteile. Zum Beispiel ein Array hat immer eine Fixe Größe, wenn du jetzt eine Array hast mit 100 DVDs und eine Weiter hinzu fügen willst.. dann musst du das Array erweiter und die 100 DVDs rüber Kopieren! Der Vorteil ist, das wenn du die 55 Dvd haben willst einen zugrif von O(1) hast also seher schnell. Bei einer Liste ist es so das die Dynamisch Wächst und das Problem mit dem Array auf gewiesse weiße Löst, nur jetzt ist es so du willst alle DVDs die als Thema Drama haben, dann musst du über alle DVDs gehen um die Richtige zu fienden also eine Laufzeit von O(n) da du dir alle DVDs anschauen musst. Ntürlich kannst du dir am Anfang eine Liste aufbauen mit allen DVDs die Dramen sind!

Ich glaube die Frage ist, wie offt Greifst du zu und wie oft änbert sich die Liste mit DVDs. zb. da mit dem Dramem wenn jetzt 50 mal in der Sekunde nach Dramen DVDs gefragt wird dann ist es schlau eine Liste zu halten. wenn das aber nur einmal im Jar passirt dann reicht eine Suche.

Eine weiter Frage ist, du musst die DVDs irgend wie einheitlich einsortieren. zb. nach Titel oder du vergibst Nummer. Nach Titel würde hier eine HashMap sin machen, bei Nummer über eine Liste!

Also es sind viele Fragen die man zu erst klären sollte!
 

Fu3L

Top Contributor
Wenn die Menge der DVDs vorher bekannt ist, könnte ein Array gut sein. Eine List wäre komfortabel, wenn du nicht weißt vorher, wie groß die Menge der DVDs ist.
Wenn das die Klasse DVD ist:

Java:
public class DVD {
   String titel;
   public DVD(String titel) {
       this.titel = titel;
   }
}

Dann brauchst du sowas wie Titel nicht extra zu speichern. Das ist ja der Sinn der Klassen, dass du Werte gruppierst und kapselst.

Java:
List<DVD> dvds = new LinkedList<DVD>();
dvds.add(new DVD("HerrDerRinge"));
System.out.println(dvds.get(0).titel);

(Edit: Natürlich sollte man auf Felder eher über Getter&&Setter zugreifen und die Eigenschaften private machen, aber darauf verzichte aus Einfachheitsgründen mal ;))
 
Zuletzt bearbeitet:

DMSB12

Mitglied
ok, soweit ist meine Frage beantwortet. bevor ich mich in die folgenden Themen einlese, gestattet mir vorab die Frage:

in der Praxis werde ja die Daten der Objekte ja nicht im Programmcode stehen, sondern vom User eingeben und dann in einer sequenziellen Datei gespeichert, so kenne ich es von anderen Programmiersprachen. Das geht hier auch, oder?
 

DMSB12

Mitglied
oje, da dachte ich ich hätts verstanden.... bitte erklärt mir meinen Denkfehler:

Java:
public class DVD

  //Variablen
  String titel;
  String kategorie;
  int fach;

  //Konstruktor
  DVD film = new DVD ( String ttl, String kat, int fach ) {
    this.titel = ttl;
    this.kategorie = kat;
    this.fach = fach;
    }

  DVD [] film = new DVD[100];

  //die ersten 2 Film-Objekte
  film[0] = new DVD ("Blade", "Action", 27);
  film[1] = new DVD ("Die Hard", "Action", 28);
}
ohne new gehts auch nicht. ich verzweifle noch. in allen Beispielen, die ich zu arrays gesehen habe, sind die array-variablen vom typ int oder String. meine soll aber vom typ der eigenen klasse sein... wo ist der Denkfehler?
 

Final_Striker

Top Contributor
Ein Array von DVD's in der Klasse DVD macht wenig Sinn.

Außerdem kann man nicht einfach so alles in den Rumpf einer Klasse schreiben, dafür hat man Methoden erfunden.
 

tuttle64

Bekanntes Mitglied
Zuletzt bearbeitet:

tuttle64

Bekanntes Mitglied
ohne new gehts auch nicht. ich verzweifle noch. in allen Beispielen, die ich zu arrays gesehen habe, sind die array-variablen vom typ int oder String. meine soll aber vom typ der eigenen klasse sein... wo ist der Denkfehler?

Die Klasse DVD sollte nur Attribute und Methoden eines realen DVD-Objektes beschreiben. Also Attribute wie Titel, Erscheinungsjahr, evtl. Format usw. sowie Getter- und Setter-Methoden. Für die Verwaltung der DVDs würde ich eine neue Klasse erstellen, beispielsweise DVDLibrary. Über den Konstruktor kann der Titel der Library sowie, sofern über ein Array, die Grösse des Array mitgeben. Diese Library stellt Methoden wie addDVD(), removeDVD(), findDVD() sowie weitere zur Verwaltung der DVDs zur Verfügung. Der Entwurf kann auch anders aussehen. Poste Deine Überlegungen und Vorschläge.
 

DMSB12

Mitglied
bei den verlinkten Seiten verstehe ich leider nur Bahnhof.
wo liegt denn nun der Denkfehler? warum macht es wenig Sinn ein Array von der Referenzvariable der Klasse DVD?
Die Referenzvariable muss doch den Typ der Klasse haben. Warum sollte das beim array anders sein?
kann mir jemand vielleicht einen Code-Schnipsel posten, wie ich viele Objekte einer Klasse mittels Array benutzen kann?
 
M

Marcinek

Gast
Dein Denkfehler steht weiter oben

Du kannst nicht einfach so in den Rumpf einer Klasse schreiben, sondern musst eine Methode dafür machen.

Ansonsten ist dein vorgehen korrekt. Es macht nur keinen Sinn ein Array aus DVDs in eine DVD zu packen.

Gruß,

Martin
 

Logaff

Bekanntes Mitglied
bin ich nu blöd oder ist das kein vaildes Java was da steht da fehlen einige { bzw } ..denn wird nen Kostruktur anders gebildet -.-

guck dir mal in der Java Insel das Thema für die Konsturktoren an
 

DMSB12

Mitglied
was ist am Konstruktor falsch?
Java:
public class DVD {

  //Variablen
  private String titel;
  private String kategorie;
  private int fach;

  //Konstruktor
  DVD film = new DVD ( String ttl, String kat, int fach ) {
    this.titel = ttl;
    this.kategorie = kat;
    this.fach = fach;
    }

  DVD [] film = new DVD[100];

  // getter & setter Methoden
}

Java:
Public class DVDVerwaltung {

  public static void main( String [] args ) {

  //die ersten 2 Film-Objekte, nur zum test, Daten sollen dann über Eingabe-Klassen realisiert werden
  DVD film[0] = new DVD ("Blade", "Action", 27);
  DVD film[1] = new DVD ("Die Hard", "Action", 28);
  // speicher-methodenaufruf (Speicher-Klasse)
  }
}
Das dass falsch ist, sagt mir auch Eclipse. aber nicht warum. ich erhoffe mir von euch eine verständliche Erklärung und super wäre auch korrekter code als Beispiel.
Meine Topic-Frage ist noch die selbe. Wie löse ich das Problem viele Objekte mittels array?
 

dayaftereh

Top Contributor
Schau mal hier:
Java:
public class DVD {
 
  //Variablen
  private String titel;
  private String kategorie;
  private int fach;
 
  //Konstruktor
  public DVD ( String ttl, String kat, int fach ) {
    this.titel = ttl;
    this.kategorie = kat;
    this.fach = fach;
    }

  
  // getter & setter Methoden
}
Und so machst du das Array[]
Java:
public class DVDVerwaltung {
 
  public static void main( String [] args ) {
 
  DVD[] filme = new DVD[100];
  //die ersten 2 Film-Objekte, nur zum test, Daten sollen dann über Eingabe-Klassen realisiert werden
  filme[0] = new DVD ("Blade", "Action", 27);
  filme[1] = new DVD ("Die Hard", "Action", 28);
  // speicher-methodenaufruf (Speicher-Klasse)
  }
}
 

tuttle64

Bekanntes Mitglied
ich erhoffe mir von euch eine verständliche Erklärung und super wäre auch korrekter code als Beispiel.

Der Konstruktor enthält mehrere Fehler: 1. Es darf keine Zuweisung erfolgen. 2. Der Bezeichner film wird für das Array verwendet und verursacht den Fehler "Duplicate field DVD.fach". 3. Mit new wird ein Objekt erzeugt und nicht deklariert. 4. In der Parameterliste von new darf keine Typdeklaration vorkommen. Ich empfehle Kapitel 3 in Galileo Computing :: Java ist auch eine Insel – gut zu studieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
W Viele Objekte mit einem Konstrukor erzeugen Java Basics - Anfänger-Themen 10
J viele Objekte erzeugen Java Basics - Anfänger-Themen 21
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
I Wie viele 1 an Bits hat die Zahl x? Java Basics - Anfänger-Themen 5
R Zu viele leere Parameter Java Basics - Anfänger-Themen 8
T Variablen Beliebig viele Arrays in Schleife erstellen Java Basics - Anfänger-Themen 1
M Aufgabe: Eine Klasse und viele Untermethoden Java Basics - Anfänger-Themen 30
D Klassen Doppelt so viele Elemente in Arraylist ? Java Basics - Anfänger-Themen 4
D zu viele MySQL Connections Java Basics - Anfänger-Themen 18
F Threads ftp4j, viele Dateien upload Java Basics - Anfänger-Themen 5
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Beliebig viele Rechtecke erzeugen Java Basics - Anfänger-Themen 5
N Beliebig viele parameter Java Basics - Anfänger-Themen 3
D Viele grafische unterschiede von Windows xp zu Windows 7 Java Basics - Anfänger-Themen 3
T unterschiedlich viele parameter übergeben Java Basics - Anfänger-Themen 5
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
Prafy Beliebig viele Arrays erstellen? Java Basics - Anfänger-Themen 2
J Methoden Beliebig viele Objekt-Eingabeparameter im Konstruktor Java Basics - Anfänger-Themen 6
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
M Zu viele Verkettungen von Klassen Java Basics - Anfänger-Themen 4
G Erste Schritte Wie viele Montage gab es? Java Basics - Anfänger-Themen 14
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
S Variablen viele Instanzvariablen vermeiden Java Basics - Anfänger-Themen 14
El_Lobo Methoden Zu viele Getter- und Settermethoden - geht das einfacher? Java Basics - Anfänger-Themen 3
L buffered reader produziert zu viele und seltsame zeichen Java Basics - Anfänger-Themen 2
T Beliebig viele Werte in Array zwischenspeichern Java Basics - Anfänger-Themen 15
S Viele Fragen von einem Anfänger in Java Java Basics - Anfänger-Themen 2
F Viele Controller-Klassen Java Basics - Anfänger-Themen 5
P Datentypen extrem viele Fehler nur irgendwie seh ich den Grund ned... Java Basics - Anfänger-Themen 3
M Viele GUI-Variablen Java Basics - Anfänger-Themen 4
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
U JTable viele möglichkeiten, keine Lösung Java Basics - Anfänger-Themen 5
H Reflexion: Eine Methode, beliebig viele Parameter (Java 1.4.2) Java Basics - Anfänger-Themen 8
M Viele verschachtelte Schleifen Java Basics - Anfänger-Themen 14
Avalarion Erschaffung eines Shadowrun Charaktergenerators - Viele, Viele Fragen! Java Basics - Anfänger-Themen 6
S Viele Konstanten, EnumSet? Java Basics - Anfänger-Themen 3
S Stilfrage: Neue Klasse wenn es in einer Klasse zu viele Methoden gibt? Java Basics - Anfänger-Themen 14
Kasu So viele "_ " ausgeben, wie ein String lang ist Java Basics - Anfänger-Themen 4
I viele Dateinamen in ein String-Array mit File().list() Java Basics - Anfänger-Themen 4
mwildam Textfile lesen und schreiben - so viele Möglichkeiten Java Basics - Anfänger-Themen 5
U Zu viele werte in einer klasse Java Basics - Anfänger-Themen 4
K Viele Fragen eines Anfängers-Fließkommazahlen/Typenwandlung Java Basics - Anfänger-Themen 5
R einfaches Programm, viele Probleme Java Basics - Anfänger-Themen 29
G viele zahlen mit wenig code Java Basics - Anfänger-Themen 4
X 1 MySQL-Verbindung und viele Threads Java Basics - Anfänger-Themen 4
E Viele Fragen Java Basics - Anfänger-Themen 8
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
O viele Name mit jeweils zugehörigen Status in .txt Speichern Java Basics - Anfänger-Themen 16
K ResultSet: Wie viele Rows beinhaltet es? Java Basics - Anfänger-Themen 6
X Viele Komponenten automatisch erzeugen Java Basics - Anfänger-Themen 2
C zu viele paint()'s. Java Basics - Anfänger-Themen 6
M Viele Textfelder auslesen Java Basics - Anfänger-Themen 3
P x-viele Variablen anlegen Java Basics - Anfänger-Themen 2
F Mit der Zahl n n-viele Arrays erstellen ?! Java Basics - Anfänger-Themen 4
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
J Objekte Java Basics - Anfänger-Themen 22
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
T 3D Objekte verarbeiten Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
E Objekte löschen Java Basics - Anfänger-Themen 9
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
G Übergeordnete Objekte abrufen Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
G Methoden Informationen aus zwei Objekte bekommen? Java Basics - Anfänger-Themen 6
P Globale Objekte Java Basics - Anfänger-Themen 2
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
D Interaktion zweier Objekte Java Basics - Anfänger-Themen 5
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben