Wie erstelle ich etwas direkt im Konstruktor?

 - (Computer, PC, Technik)  - (Computer, PC, Technik)

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wenn du einen Wert direkt bei der Deklaration zuweisen möchtest, statt den Wert im Konstruktor zu setzen, kannst du das wie folgt machen:

private Scanner tastatur = new Scanner();

Das funktioniert aber natürlich nur, wenn die Klasse Scanner einen Konstruktor bereitstellt, der keine Parameter hat. Das scheint bei Scanner nicht der Fall zu sein, siehe https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#constructor_summary

Deklaration:

TYP NAME;

Zuweisung:

NAME = WERT

Deklaration mit Zuweisung:

TYPE NAME = WERT

Instanziierung von Objekten:

new TYP()

An sich gebe ich dir Recht, aber ich wollte erreichen, dass es direkt erstellt wird in der Konstruktormethode. Ich habe ansonsten keine Methode in der Klasse, die ich nur einmal aus ausführe (ich will auch nicht unnötig viele Scanner erstellen).

0

Aber heisst es nicht "Initialisierung"? (Kann auch gut sein, dass Instanziierung ein anderen Begriff dafür ist.)

0
@KevinAntwortet

Initialisieren tut man eine Variable.

NAME = WERT die erste Zuweisung.

Instanziieren bezieht sich auf ein Objekt einer Klasse in Objektorientierung. Wobei dabei natürlich ein Speicherbereich für das Objekt angefordert und initialisiert wird.

Anm. einfach als Befehl "new TYP();" zu schreiben ist legitim. Man instanziiert ein Objekt, initialisiert dabei aber keine Variable(außer den inneren Werten des Objekts).

Das macht man sehr häufig in der main() von GUI-Projekten.

0

Meinst du vielleicht:

private Tastatur = new Tastatur(Scanner);

Kein Variblenname?

1
@PerfectMuffin

Oh, danke das du mich darauf aufmerksam gemacht hast, die hab ich jetzt glatt vergessen.

0

Was möchtest Du wissen?