OOP Objekte automatisch erzeugen

Syntax6

Mitglied
Hallo


Ich möchte gerne eine Anzahl an Objekten automatisch erzeugen und dann unter verschiedenen Namen abspeichern.

Über eine For-Schleife würde ich die Objekte erstellen wollen doch soll sich auch der Variablenname des erzeugten Objekts ändern da ich die Objektvariablen jedes Objekt seperat aufrufen möchte.

Die Anzahl der Objekte liegt so bei 300.

Hat jemand eine Idee ?


lg

Syntax6
 
Die Frage an sich ist "falsch", die stellt sich doch so in Java gar nicht 😉

Vairablennamen sind "irrelevant", helfen doch "nur" dem Programmierer um die Übersicht zu behalten, zur Laufzeit sind die egal.

Was hast du denn eigentlich vor?
 
wenn du mit Listen Arrays meinst, dann ja. Diese kann man auch nur empfehlen zu nutzen, da man ohne viel Aufwand für jedes Objekte die gleichen Aktionen durchführen kann.
 
Ich möchte Artikel verwalten und versuche aus jedem Artikel ein Objekt zu machen. Diese Objekte will ich unter verschiedenen Namen ablegen wobei die Bezeichnung keine Rolle spielt (vorerst). Es ist ersteinmal nur ein Test.
 
wenn jeder Artikel einen Namen hat (als Eigenschaft), hast du schon was du willst.

wenn du noch ueber diesen Namen einfach auf den jeweiligen Artikel zugreifen willst bietet sich eine Map an, ansonsten reicht eine einfache Collection
 
Du kannst doch einfach eine Liste mit den Artikeln machen. Z.B. hast du ein Interface [c]Artikel[/c] und die Klassen [c]Brot[/c], [c]Fleisch[/c] und [c]Kaese[/c] - hier im Beispiel mit Konstruktoren, denen einen String als Produktname übergeben werden kann:
Java:
List<Artikel> artikel = new ArrayList<Artikel>(); // wir erstellen eine ArrayList, welche Artikel aufnehmen kann
artikel.add(new Kaese("Edamer"));
artikel.add(new Fleisch("Hamburger"));
artikel.add(new Kaese("Emmentaler"));
artikel.add(new Brot("verdammtes Vollkorn"));

Edit: Kleiner Nachtrag, damit keine Verwirrung aufkommt. Wenn du nur einen Produktnamen speichern musst, dann brauchts natürlich nicht verschiede Klassen, sondern man kann gleich mit einer Klasse [c]Artikel[/c] mit einem Attribut [c]produktName[/c] o.ä. loslegen.
 
ich glaube er braucht die Objekte gar nicht ... Es würde bestimmt auch eine einfache ArrayList oder sowas reichen ...
Ein Objekt lohnt sich erst dann wenn du A. davon erben willst oder B. es mehrere Eigenschaften besitzt. (Es gibt bestimmt auch C und D)
 
Ein Objekt lohnt sich erst dann wenn du A. davon erben willst oder B. es mehrere Eigenschaften besitzt. (Es gibt bestimmt auch C und D)

Pfui pfui pfui! Auch wenn ich - um mein Beispiel wieder zu nehmen - nur ein Attribut "produktName" einer beliebigen Klasse habe, speicher ich dies sicher nicht als String ab! Erstens ist dank der Klasse (und des Attributs) klar erkennbar, um was es sich handelt, und die Chance ist gross, dass da was dazu kommt.
 
Um die Objekte anahnd eines Schlüssels ansprechen zu können, würde ich eine HashMap nehmen...

Java:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class Artikel {

    public String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private Artikel(String name) {
        super();
        this.name = name;
    }

    public String toString() {
        return "Das ist: " + name;
    }

    public static void main(String[] args) {
        List<Artikel> liste = new ArrayList<Artikel>();
        liste.add(new Artikel("Brot"));
        liste.add(new Artikel("Käse"));
        liste.add(new Artikel("Wein"));
        liste.add(new Artikel("Bier"));

        HashMap<String, Artikel> artikelByName = new HashMap<String, Artikel>();
        for (Artikel artikel : liste) {
            artikelByName.put(artikel.getName(), artikel);
        }
        
        System.out.println(artikelByName.get("Bier"));
        System.out.println(artikelByName.get("Wein"));
    }
}
 

Neue Themen


Zurück
Oben