konstruktoren in klassen mit instanz
-
ich hab zwei fragen
1. wie heisst der fachbegriff für so eine klasse in java die nur eine instanz hat und ein interface implementiert
2. wie füg ich hier einen konstruktor ein?
thxprivate foo_interface myFoo = new foo_interface () { void bar() { } }
-
-
Du bekommst autmatisch einen Constructor erzeugt, nämlich den, den du mit "new foo_interface()" auch schon aufrufst. Wenn du irgendwelchen Code im Contructor haben wolltest, kannst du stattdessen zusätzlich Instance Initializers verwenden. Das sind einfach Blöcke ohne einen Methodenheader davor, so ähnlich wie die häufuger verwendeten Static Initializers "static { ... }", nur eben ohne static davor. Diese Blöcke werden nach dem Constructor ausgeführt. Außerdem kannst du alle lokalen final Variablen aus dem Scope, in dem das Object erzeugt wird, innerhalb der inneren Klasse verwenden.
final String arg = "test"; private foo_interface myFoo = new foo_interface () { private int some_var; { some_var = arg.length(); System.out.println( "instance initializer " + this ); } void bar() { System.out.println( "blubb " + arg + " .. " + some_var ); ++some_var; } }; myFoo.bar(); myFoo.bar();