Konstruktoraufruf mit "variablem" Namen

Nelzon

Mitglied
Grüße,

ich bin neu was Programmiersprachen betrifft, und wühle mich gerade durch allerlei Bücher. Da die letzte halbe Stunde keine Hilfe brachte und ich auch mit der Suche hier nichts fand, eine kurze Frage. Ich hoffe mal ich sehe einfach den Wald vor lauter Bäumen nicht :)

Ich möchte meinen Konstruktor (Klasse und Name bspw Test) aufrufen, und als Name einen String oder Int übergeben. Bspw:

String konName = "Kon1";

Test (konName) = new Test(x, y);

ich habe "konName" in Anführungszeichen gesetzt, in Klammern, beides.. keine Chance. Was mache ich falsch? Sobald ich einen festen Namen vergebe funktioniert alles wunderbar, nur einen variablen Namen den ich dann bspw über die Eingabe an der Tastatur übergeben möche, will er partout nicht akzeptieren.
 

knilch

Bekanntes Mitglied
Hi,
String konName = "Kon1";
Test (konName) = new Test(x, y);
Nun so funktioniert das nicht.
Die Syntax zum Erstellen von Instanzen ist so:
Java:
// ohne Parameter:
KLASSE instanz0 = new KLASSE();
// oder mit 1 Parameter:
KLASSE instanz1 = new KLASSE(PARAM1_KLASSE param1);
// oder mit 2 Parameter:
KLASSE instanz2 = new KLASSE(PARAM1_KLASSE param1, PARAM2_KLASSE param2 );
// oder mit 3 Parameter:
KLASSE instanz3 = new KLASSE(PARAM1_KLASSE param1, PARAM2_KLASSE param2, PARAM3_KLASSE param3 );
// ... etc
In deinem Fall würde dann so aussehen:
Java:
Test meinTestObjekt = new Test(x, y);
Wenn du beim Erzeugen von einem Objekt unterschiedlich viele Parameter dem Konstruktor mitgeben möchtest, musst du in der Klasse Test auch alle Konstruktoren implementieren, die deiner Meinung nach möglich sind.
Hier mal ein Beispiel.
Java:
public class Test {
    private int x;
    private int y;
    private String name;

    public Test(int x, int y) {
        name = "";
        this.x = x;
        this.y = y;
    }
 
    public Test(String name) {
        this.name = name;
        x = 0;
        y = 0;
    }
 
    public Test(String name, int x, int y) {
        this.name = name;
        this.x = x;
        this.y = y;
    }
     //... getters und setters
}
 
Zuletzt bearbeitet:

Nelzon

Mitglied
Hiho,

erstmal danke für deine Antwort :)

Hab mich ein wenig ungünstig ausgedrückt, die Implementierung in der Testklasse klappt so weit, die hab ich hier nur nicht mit aufgeführt gehabt.
Mir geht es primär darum, das ich erst während der Laufzeit weiss wie viele Konstruktoraufrufe ich letztendlich brauche. Daher wollte ich mir eine Funktion schreiben, die jedes mal den Namen von der Tastatur übernimmt, genau so wie die Werte, und damit findet dann der Aufruf statt.
In deinem Beispiel wäre ich ja auf den einen Konstruktor festgeschrieben, der sich "meinTestObjekt" nennt, und nur einmal mit den Parametern aufgerufen werden kann. Wenn ich weiss wie viele ich brauche geht das ja noch (dann erstell ich halt einfach drei Aufrufe die ich dann "meinTestObjekt1", meinTestObjekt2"... nenne), aber bei variablen Aufrufen weiss ich nicht mehr weiter..
 

knilch

Bekanntes Mitglied
Mir geht es primär darum, das ich erst während der Laufzeit weiss wie viele Konstruktoraufrufe ich letztendlich brauche.
Meinst du damit, dass nicht klar ist, wie viele Parameter zur Verfügung stehen, um damit Instanzen zu erstellen?
Du kannst natürlich auch so etwas machen:
Code:
public Test(Object ... objects ) {
   // objects ist ein Array  mit instanzen der Oberklasse Objekt.
}
Aber das ist nicht ideal, so hast du keine Kontrolle, wie die Instanzen erstellt werden. Du kannst damit irgend etwas mitgeben, und deine Instanz wird erzeugt (oder das Programm wird mit einer Exception enden, da du damit keine sichere Prüfungen hast, was erlaubt ist und was nicht)
 

knilch

Bekanntes Mitglied
Wenn es aber darum geht, dass du nicht weisst, wie viele Instanzen von der Klasse Test erzeugt werden sollen, dann brauchst du einen Container oder vielleicht ein Array, welches deine Instanzen aufnimmt.
Bei einem Array muss eine Grösse definiert werden, bei einem Container (z.B. ArrayList oder LinkedList muss dies nicht vorhanden sein, da sich die Grösse dynamisch ändert)
Mit diesem Beispiel werden 5 Instanzen von Test erzeugt und danach ausgegeben.
Java:
       List<Test> testListe = new ArrayList<>();
       for (int i = 0; i < 5; i++) {
           testListe.add(new Test("test" + i, i, i+1));
       }
    
       for (Test test : testListe) {
           System.out.println(test.getName() + " " + test.getX() + " "+test.getY());
       }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Klassen statische Objekterzeugung vor Konstruktoraufruf??? Java Basics - Anfänger-Themen 6
M Vererbung Konstruktoraufruf Java Basics - Anfänger-Themen 5
G Undefined Instanz/Konstruktoraufruf Java Basics - Anfänger-Themen 8
J Vererbung Problem mit verkettetem Konstruktoraufruf: Wert wird nicht übergeben. Java Basics - Anfänger-Themen 10
M Konstruktoraufruf bei Array Java Basics - Anfänger-Themen 7
P Fehlermeldung bei Konstruktoraufruf (Java) Java Basics - Anfänger-Themen 5
Povlsen84 Konstruktoraufruf Java Basics - Anfänger-Themen 6
H Frage zum Konstruktoraufruf Java Basics - Anfänger-Themen 14
E Konstruktoraufruf Java Basics - Anfänger-Themen 3
G Konstruktoraufruf mit this Java Basics - Anfänger-Themen 6
L Hashmap mit variablem Key Java Basics - Anfänger-Themen 9
D Statische Objekte mit variablem Parameter Java Basics - Anfänger-Themen 1
M Elemente mit variablem Typ erstellen Java Basics - Anfänger-Themen 2
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
M Arrayliste mit beliebig vielen Namen befüllen Java Basics - Anfänger-Themen 4
L loop für Namen Java Basics - Anfänger-Themen 11
HoT verschiedene ArrayLists mit ähnlichem Namen in for-Schleife aufrufen Java Basics - Anfänger-Themen 3
O Namen (mit Umlauten und ß) in einer ArrayList suchen Java Basics - Anfänger-Themen 5
P Methoden Namen trennen mit .substring(), char.At(), .lenght() Java Basics - Anfänger-Themen 8
F Jtree kürzt Namen auf ... Java Basics - Anfänger-Themen 4
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
B Datentypen Datentyp welcher den gleichen Namen wie die Klasse trägt? Java Basics - Anfänger-Themen 1
S Variablen Flexible Variablen Namen Java Basics - Anfänger-Themen 3
feinperligekohlensaeure Arraylisten-Namen iterieren.. wie ? Java Basics - Anfänger-Themen 39
S Objekte mit gleichem Namen in unterschiedlichen Klassen Java Basics - Anfänger-Themen 3
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
Silvascus Array, der mit dem Namen, der per Methode übergeben wird, erstellt wird Java Basics - Anfänger-Themen 5
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
H Namen abgleichen Java Basics - Anfänger-Themen 3
M Datei-Namen aus .jar auslesen Java Basics - Anfänger-Themen 7
A Wie am effizientesten bzw. schnellsten Namen/Wörter sortieren? Java Basics - Anfänger-Themen 1
S Strings im Array nach Namen sortieren Java Basics - Anfänger-Themen 11
L Namen aus Textdatei auslesen Java Basics - Anfänger-Themen 1
J JLabels in schleife erzeugen mit verschiedenen namen? Java Basics - Anfänger-Themen 5
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
D Interface namen bekommen Java Basics - Anfänger-Themen 3
K Best Practice In Klassen auf andere Objekte mit variablen Namen zugreifen Java Basics - Anfänger-Themen 6
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
O Prüfen ob ein String den selben Namen hat wie eine Booleanreihe? Java Basics - Anfänger-Themen 17
K Doppelte namen bei random Java Basics - Anfänger-Themen 3
K Einfacher random namen weitergeben Java Basics - Anfänger-Themen 4
D String mit Integer Variablen Namen vergleichen, möglich? Java Basics - Anfänger-Themen 6
V Variablen/Objekt Namen hochzählen Java Basics - Anfänger-Themen 4
Kenan89 Nach Namen einer Klasse fragen Java Basics - Anfänger-Themen 6
O variablen String Namen Java Basics - Anfänger-Themen 11
B JFrame - Namen anzeigen Java Basics - Anfänger-Themen 2
K Klassen Objekt mit einem Namen von einer bestimmten Klasse instanziieren Java Basics - Anfänger-Themen 10
G Namen der Generic Klasse Java Basics - Anfänger-Themen 3
B Font Namen ermitteln Java Basics - Anfänger-Themen 7
Luk10 Package Namen Java Basics - Anfänger-Themen 5
M Input/Output Namen der Files aus einem Ordner MIT bestimmten Encoding auslesen? Java Basics - Anfänger-Themen 3
I Namen eines Elements aus 2 Variablen zusammenbasteln Java Basics - Anfänger-Themen 7
C Methoden mit wechselndem Namen in Schleife aufrufen Java Basics - Anfänger-Themen 11
A Gruppen von Namen erkennen Java Basics - Anfänger-Themen 21
J Pfad bzw. Namen einer Datei auslesen Java Basics - Anfänger-Themen 6
D Javamail - Absender-Namen einfügen? Java Basics - Anfänger-Themen 2
C AbstractTableModel Spalten-Namen Java Basics - Anfänger-Themen 3
M Package Namen ändern Java Basics - Anfänger-Themen 3
O Kann ich für Array-Namen Variablen verwenden? Java Basics - Anfänger-Themen 2
M Namen der Elemente auf ContentPane? Wie darauf zugreifen? Java Basics - Anfänger-Themen 2
B Konstruktor namen wird nicht erkannt Java Basics - Anfänger-Themen 9
H Expliziten Namen angeben Java Basics - Anfänger-Themen 2
G Namen von ArrayListen dynamisch erzeugen Java Basics - Anfänger-Themen 4
E Hilfed, ide bitte de Namen wählt Java Basics - Anfänger-Themen 5
P Namen Programm Java Basics - Anfänger-Themen 5
G Namen soriteren Java Basics - Anfänger-Themen 19
W Variable mit Namen aus Variablen deklarieren Java Basics - Anfänger-Themen 2
S Nach Namen sortieren und diese in 3 Gruppen aufteilen Java Basics - Anfänger-Themen 16
W Objekt-Namen aus Variablennamen erstellen Java Basics - Anfänger-Themen 7
G Welchen package-Namen wählen, wenn man keine Domain hat? Java Basics - Anfänger-Themen 11
P Suche Namen für eine Komponente Java Basics - Anfänger-Themen 13
F Kann man den Namen einer Variable in ein String Konvertieren Java Basics - Anfänger-Themen 2
G Eingegebene Namen sortieren Java Basics - Anfänger-Themen 2
G Namen alphabetisch sortieren Java Basics - Anfänger-Themen 3
M Namen der Dateien in einem bestimmten Verzeichnis erhalten Java Basics - Anfänger-Themen 4
D Welchen Namen darf ein Konstruktor haben? Java Basics - Anfänger-Themen 6
J Methode mit gleichem Namen in verebter Klasse und Interface Java Basics - Anfänger-Themen 5
T Namen und RGB Wert extrahieren? Java Basics - Anfänger-Themen 2
S einlesen von dateien mit var. namen Java Basics - Anfänger-Themen 6
G ArrayList mit Namen belegen Java Basics - Anfänger-Themen 5
R Finde meinen Fehler nicht! - Namen von Personen vergleichen Java Basics - Anfänger-Themen 6
G Objekt Namen dynamisch vergeben. Java Basics - Anfänger-Themen 7
M Namen der eigenen Klasse ermitteln Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben