Konstruktor mit Methode

efaq

Mitglied
Hi Leute,

vielleicht ist das eine Anfängerfrage, aber ich kannte das Phänomen bis dato nicht.
Es gibt Konstruktoren und es gibt Methoden.

Aber was hat es damit auf sich wenn ein Konstruktor mit einer Methode zugleich in der Klasse definiert wird?
Hier mal der Code. Was ich meine, habe ich fett markiert.

Warum kann man nicht einfach getSubList(int start, int end) schreiben? Wozu der Konstruktor? Würde es denn ohne den Konstruktor gehen und wenn ja, was müsste dann der Rückgabe-Typ sein?:

public class AdvancedStringList extends StringList {

int advancedZahl = 5;

public AdvancedStringList(int initialSize) {
//es wird einfach der Konstruktor der Superklasse (StringList) aufgerufen
super(initialSize);
}


/*
* Gibt eine neue Instanz von StringList mit den Elementen
* von "start" bis "end" (nicht inbegriffen) zurück
*/
public AdvancedStringList getSubList(int start, int end) { //TODO ELIAS: Warum Konstruktor mit Methode?
AdvancedStringList subList = new AdvancedStringList(end - start);

for (int i = start; i < end; i++) {
subList.add(stringArray);
}

return subList;
}

}



Ich danke vielmals für die Hilfe im voraus!
 

flopalko

Bekanntes Mitglied
Ich verstehe deine Frage nicht. Es gibt hier einen Konstruktor und eine Methode. Die Methode gibt halt auch ein Objekt der Klasse AdvancedStringList zurück. Was genau ist jetzt die Frage?
 
K

kneitzel

Gast
Also das getSubList ist eine normale Funktion. Das ist kein Konstruktor.

Ein Konstruktor gibt nichts zurück, wie Du drüber gut sehen kannst.

Somit ist dies eine Funktion, die auf einer Instanz der Klasse aufgerufen werden muss/kann und die etwas zurück gibt. Da eine Instanz von der Klasse zurück gegeben werden soll, wird in der Funktion eine neue Instanz erzeugt, aber das ändert nichts an der Tatsache, dass es eine normale Funktion ist und bleibt.
 
K

kneitzel

Gast
Natürlich gibt ein Konstruktor nichts zurück. Der "New" Operator gibt eine neue Instanz zurück. Das ist ein kleiner aber feiner Unterschied.
 

flopalko

Bekanntes Mitglied
Hab ich tatsächlich grad nachgesehen. Da hast du anscheinend recht, habe ich mir so noch nie drüber Gedanken gemacht. Sloppy sagt man allerdings durchaus, dass der Konstruktor ein Objekt returned.
 

mihe7

Top Contributor
Aber was hat es damit auf sich wenn ein Konstruktor mit einer Methode zugleich in der Klasse definiert wird?
Um Deine Frage kurz zu beantworten: das, was Du fett markiert hast, ist kein Konstruktor, sondern eine ganz gewöhnliche Methode. Der Rückgabewert ist nur vom selben Typ wie die Klasse, in der sich die Methode befindet. Ein Konstruktor ist dazu da, neue Objekte zu initialisieren.

Mal ein Beispiel: wenn Du zwei natürliche Zahlen nimmst und diese addierst, dann erhältst Du als Ergebnis wieder eine natürliche Zahl. Subtrahierst Du dagegen zwei natürliche Zahlen, erhältst Du ggf. keine natürliche Zahl mehr, sondern eine ganze Zahl.

Java:
class NatuerlicheZahl {
    private int wert;

    // Konstruktor für die Erzeugung natürlicher Zahlen
    // Initialisiert ein neues NatuerlicheZahl-Objekt mit dem angegebenen wert.
    public NatuerlicheZahl(int wert) {
        if (this.wert < 0) {
            throw new IllegalArgumentException(wert + " ist keine natürliche Zahl");
        }
        this.wert = wert;
    }

    // addiert summand zu this und gibt das Ergebnis zurück
    // Das Ergebnis ist wieder eine NatuerlicheZahl.
    public NatuerlicheZahl addiere(NatuerlicheZahl summand) {
        return new NatuerlicheZahl(this.wert + summand.wert);
    }

    // subtrahiert subtrahend von this und gibt das Ergebnis zurück
    // Das Ergebnis ist eine GanzeZahl.
    public GanzeZahl subtrahiere(NatuerlicheZahl subtrahend) {
        return new GanzeZahl(this.wert - subtrahend.wert);
    }
}
Die Klasse GanzeZahl habe ich hier nicht dargestellt; diese würde ganz ähnlich aussehen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
N Sprite Methode (Getter, Setter, Konstruktor) Java Basics - Anfänger-Themen 9
E Compiler-Fehler Konstruktor - Methode Java Basics - Anfänger-Themen 12
O OOP prindata Methode aufrufen!? Methode drucken + Konstruktor Java Basics - Anfänger-Themen 9
L Klassen Aufruf einer ueberschreibbaren Methode im Konstruktor Java Basics - Anfänger-Themen 4
K Methode vererben bei überschriebenem Konstruktor? Java Basics - Anfänger-Themen 14
M konstruktor = methode? Java Basics - Anfänger-Themen 34
N Konstruktor mit filename bzw. methode load(filename) Java Basics - Anfänger-Themen 11
N methode im Konstruktor aufrufen Java Basics - Anfänger-Themen 4
J Konstruktor +methode???? Java Basics - Anfänger-Themen 7
P Parameter aus Konstruktor an Methode/Funktion übergeben Java Basics - Anfänger-Themen 10
M Unterschied main-Methode und Konstruktor Java Basics - Anfänger-Themen 13
M Konstruktor eine statische Methode? Java Basics - Anfänger-Themen 9
P Konstruktor-Aufruf IN der Methode? Java Basics - Anfänger-Themen 2
H Konstruktor in Methode fremder Klasse: try-catch-Problem Java Basics - Anfänger-Themen 4
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
T Schlüsselworte Schlüsselwort this im Konstruktor Java Basics - Anfänger-Themen 3
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
J Konstruktor Java Basics - Anfänger-Themen 18
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Konstruktor und update Java Basics - Anfänger-Themen 4
K Kopier-Konstruktor Java Basics - Anfänger-Themen 6
S Default Konstruktor Java Basics - Anfänger-Themen 7
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
J Vier gewinnt in Java,Spieler Konstruktor Java Basics - Anfänger-Themen 8
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
HorstSchröder Konstruktor mit Initialwert Java Basics - Anfänger-Themen 1
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
S Konstruktor passt nicht zum Rest Java Basics - Anfänger-Themen 11
C Unbekannter "Konstruktor"?? Java Basics - Anfänger-Themen 10
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
K Konstruktor für ein Objekt mit Zugriffsmethoden Java Basics - Anfänger-Themen 7
H Unterschied Konstruktor und Klassenname x = new Klassenname; Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
E ArithmeticException im Konstruktor Java Basics - Anfänger-Themen 4
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
W Typecastin im Konstruktor? Java Basics - Anfänger-Themen 2
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
F Arrays im Konstruktor Java Basics - Anfänger-Themen 5
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
L Instanzvariablen, Veerbung, Konstruktor Java Basics - Anfänger-Themen 32
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
E Plausibilitätsprüfung in dem Konstruktor mit Ausnahmebehandlung Java Basics - Anfänger-Themen 8
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
D Compiler-Fehler Konstruktor von Superklasse übernehmen Java Basics - Anfänger-Themen 1
P Counter im Konstruktor Java Basics - Anfänger-Themen 11
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Datentypen Warum mit Konstruktor Objektvariablen initalisieren? Java Basics - Anfänger-Themen 19
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
P Konstruktor. Java Basics - Anfänger-Themen 4
D Best Practice Objekt automatisch im Konstruktor füllen? Java Basics - Anfänger-Themen 9
D Objekt oder Konstruktor Java Basics - Anfänger-Themen 2
F Java default Konstruktor Java Basics - Anfänger-Themen 1
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
T Konstruktor mit Referenzdatentypen Java Basics - Anfänger-Themen 5
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
R ArrayList im Konstruktor. Java Basics - Anfänger-Themen 4
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
C Generic im Konstruktor Java Basics - Anfänger-Themen 1
F Privater Konstruktor und statische Methoden Java Basics - Anfänger-Themen 4
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B Methoden Konstruktor im Konstruktor aufrufen Java Basics - Anfänger-Themen 2
N Aufgabe: Pizza Konstruktor mit mehreren beliebigen Durchmesser/Preiskombinationen Java Basics - Anfänger-Themen 8
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
G Verwendung von Konstruktor Java Basics - Anfänger-Themen 8
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
C Konstruktor in Abstrakten Klassen Java Basics - Anfänger-Themen 4
B Konstruktor Problem Java Basics - Anfänger-Themen 8
Joew0815 konstruktor und damit erstellte objekte Java Basics - Anfänger-Themen 1
K Hashtable mit eigenen Konstruktor Java Basics - Anfänger-Themen 2
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
H Fehler im Konstruktor abfangen Java Basics - Anfänger-Themen 10
J Konstruktor Problem bei Vererbung Java Basics - Anfänger-Themen 1
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben