Anonyme Klassen - Interface

anne1994

Mitglied
Moin Leute,


habe einen Codeschnipsel entdeckt aber verstehe nicht so richtig was dort passiert. Kann es mir jemand erklären

Java:
//Interface erstellt
interface AnyInterface{
public int machWas (final int wert);}


class AnyClass{

private int myWert=0;
//Methode die als Parameter eine Instanz vom Typ Anyinterface erwartet

void verwendeInterface (final AnyInterface theInterface){
//Dann auf dieser Instanz die Methode machWas aufrufen und ihr den Wert hier 0 übergeben
this.myWert=theInterface.machsWas(this.myWert);
}

void machIrgendwas()

{// Und hier weiß ich dann nicht so genau?, wird hier jetzt eine Anonyme Klasse erstellt der eine Instanz von AnyInterface übergeben wird??
this.verwendeInterface((new AnyInterface(){
private int myValue=0;
private AnyInterface initialize (final int value){
this.myValue=value;
return this;
}
public int machWas(final int wert){
return wert+1;
}
}).initialize(42);
}}

Habe mal angefangen den Code zu kommentieren, mit dem was ich glaube was dort passiert. Wäre super cool wenn das jemand fortführen/korrigieren könnte.


Merci :)

Grüße
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
Erstmal hättest du du die ganzen Compilefehler in dem Code beheben können und das Ganze vernünftig einrücken/formatieren können. Wenn du das tust, kommt das hier bei raus:
Java:
interface AnyInterface {
    int machWas(final int wert);
}

class AnyClass {
    private int myWert = 0;

    void verwendeInterface(final AnyInterface theInterface) {
        this.myWert = theInterface.machWas(this.myWert);
    }

    void machIrgendwas() {
        this.verwendeInterface(new AnyInterface() {
            private int myValue = 0;

            private AnyInterface initialize(final int value) {
                this.myValue = value;
                return this;
            }

            public int machWas(final int wert) {
                return wert + 1;
            }
        }.initialize(42));
    }
}
 
X

Xyz1

Gast
@httpdigest : Hatte schon geholfen.

Java:
//Interface erstellt
interface AnyInterface {

    public int machWas(final int wert);

}

class AnyClass {

    private int myWert = 0;
    //Methode die als Parameter eine Instanz vom Typ Anyinterface erwartet
    //Alles Methoden die dieses Interface AnyInterface implementieren könnten also ein Objekt übergeben

    /**
     * Erwartet Objekt des Interfaces AnyInterface.
     *
     * @param theInterface
     */
    void verwendeInterface(final AnyInterface theInterface) {
        //Dann auf dieser Instanz die Methode machWas aufrufen und ihr den Wert hier 0 übergeben
        this.myWert = theInterface.machWas(this.myWert);
    }

    /**
     * Erstellt anonyme innere Klasse also Objekt des Interface AnyInterface und
     * ruft mit diesem die Methode verwende Interface auf.
     */
    void machIrgendwas() {// Und hier weiß ich dann nicht so genau?, wird hier jetzt eine Anonyme Klasse erstellt der eine Instanz von AnyInterface übergeben wird??
        this.verwendeInterface((new AnyInterface() {
            private int myValue = 0;
            // hier wird dann die Methode AnyInterface initialize aufgerufen, der ein int übergeben wird

            public AnyInterface initialize(final int value) {
                // dann wird myValue dieser wert übergegeben
                this.myValue = value;
                // und zurückgegeben
                return this;
            }

            /**
             * Diese Methode ist die eigentliche Logik und addiert 1.
             *
             * @param wert
             * @return
             */
            @Override
            public int machWas(final int wert) {
                return wert + 1;
            }
        }).initialize(41));

        // Ausgabe.
        System.out.println(myWert);
    }

}

class ClazzWithMain {

    public static void main(String[] args) {
        new AnyClass().machIrgendwas();
    }

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Anonyme Klassen Allgemeine Java-Themen 24
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
D Annotationen oder anonyme Funktionen? Allgemeine Java-Themen 0
G Problem mit MVC-Pattern (Controller als anonyme Unterklasse) Allgemeine Java-Themen 2
egrath Anonyme Methode - warum hier kein Compilerfehler Allgemeine Java-Themen 2
sliwalker Threads: Kann man auf anonyme Threads warten? Allgemeine Java-Themen 2
K Objekt an anonyme Klasse übergeben Allgemeine Java-Themen 8
I Mehrere Klassen mit den selben Daten Allgemeine Java-Themen 5
Zrebna Wie ermittelt man alle testbaren (zu testenden) Klassen in seinem Maven-Projekt? Allgemeine Java-Themen 23
8u3631984 Jacoco Testcoverage bei Abstracten Klassen in verschachtelten Modulen Allgemeine Java-Themen 6
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
B Wie kann ich mein 8 Klassen Gebilde objektorientierter schreiben? Allgemeine Java-Themen 114
N abstracte klassen methoden Allgemeine Java-Themen 32
W Klassen Zugriff auf ein Textfile aus allen Klassen. Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
M Kann man Annotationen auf Klassen einschränken die ein Interface implementieren? Allgemeine Java-Themen 1
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
H Interface PluginSystem ClassNotFound exception für library Klassen Allgemeine Java-Themen 10
L Classpath Zur Laufzeit bestimmte Klassen in Classloader hinzufügen? Allgemeine Java-Themen 4
P Abstrakte Klassen vs. Interface Allgemeine Java-Themen 4
I Klassen aus Jar-Dateien aus anderem Ordner laden Allgemeine Java-Themen 3
D OOP Gemeinsamen ID-Raum für zwei Klassen implementieren Allgemeine Java-Themen 7
B Problem mit meinen Klassen Allgemeine Java-Themen 6
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
F ArrayList`s in Klassen mit Getter/Setter Allgemeine Java-Themen 8
F Code in Klassen bringen Allgemeine Java-Themen 4
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
F Klassen Verwendung abstrakter Klassen Allgemeine Java-Themen 9
W Variablenübergabe über mehrere Klassen Allgemeine Java-Themen 4
B Vererbung Interface und implementierende Klassen Allgemeine Java-Themen 8
D Klassen JLabels in anderen Klassen verwenden. Allgemeine Java-Themen 7
H Klassen LibGDX - Verschiedene Klassen als Value in einer Map Allgemeine Java-Themen 8
J Best Practice Objekt an alle Klassen verteilen ( Discord Bot ) Allgemeine Java-Themen 7
ReinerCoder auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
J Tetris Probleme bei Klassen Allgemeine Java-Themen 14
cool_brivk24 Klassen Klassen Aufruf Fehlgeschlagen Allgemeine Java-Themen 14
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
S Klassen Abstrakte Klassen Allgemeine Java-Themen 5
T Log4J - Deaktivierung für einzelne Klassen Allgemeine Java-Themen 7
Tommy Nightmare Klassen Globale Klassen erstellen Allgemeine Java-Themen 7
X Klassen aus jar in jar Laden Allgemeine Java-Themen 1
S Klassen Klassen "virtuell" erstellen Allgemeine Java-Themen 5
J Aus mehreren Klassen ein Datei ausführbare machen Allgemeine Java-Themen 6
S equals-Methode bestimmer Klassen abfangen Allgemeine Java-Themen 2
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
Sin137 Struktur der Klassen & Package Allgemeine Java-Themen 2
G Klassen und interne Klassen Allgemeine Java-Themen 1
S Klassen übergeben Allgemeine Java-Themen 13
C Klassen und Konstruktor Allgemeine Java-Themen 2
S Classpath Wie kann ich Java-Library Klassen "verstecken"..? Allgemeine Java-Themen 4
A Java speech - 2 Klassen Allgemeine Java-Themen 1
V Wie kann ich die Fragen mit den anderen Klassen verbinden? Allgemeine Java-Themen 1
T Schlüsselworte mehrere public-Klassen in einem Paket Allgemeine Java-Themen 7
V Klassenname von allen Klassen mit einer bestimmten Eigenschaft bekommen Allgemeine Java-Themen 2
B Classpath Eclipse findet importierte Klassen nicht Allgemeine Java-Themen 1
C DBConnection als Methode in mehreren Klassen Allgemeine Java-Themen 4
C Arten von Klassen Allgemeine Java-Themen 3
7 Verbinden von Mehreren Klassen Allgemeine Java-Themen 29
A Klassen ein Interface aufzwingen Allgemeine Java-Themen 4
O Java-Obfuscator, welcher einzelne Methoden, Klassen und Ordnerstrukturen ausnehmen kann. Allgemeine Java-Themen 1
A also definition von klassen und string methoden und algorithmik Allgemeine Java-Themen 13
D Problem bei Vererbung abstrakter Klassen Allgemeine Java-Themen 6
M Interface Generische Klassen mit mehreren Typen überschreiben Allgemeine Java-Themen 0
L OOP Klassen-Design (static oder nicht?) Allgemeine Java-Themen 3
X Eigene Annotation - mit Bedingung für ganze Klassen oder Methoden Allgemeine Java-Themen 2
O Klassen Programm in Klassen unterteilt, werte werden nicht mehr übernommen Allgemeine Java-Themen 3
J C++ Projekt (QT) in Java mit Klassen (nicht imperativ) nutzen (BridJ? JavaCPP? SWIG? JNA? JNI?) Allgemeine Java-Themen 2
T Datentypen Eine Liste - verschiedenen Klassen - eine Abstracte Klasse Allgemeine Java-Themen 3
S .jar hat nicht alle Klassen ??? Allgemeine Java-Themen 10
S Polymorphie Polymorphismus bei Abstrakten Klassen Allgemeine Java-Themen 2
S Tool um mehrere Klassen in einer Klasse vereinen? Allgemeine Java-Themen 6
T Wie kann ich alle existierenden Java-Klassen anzeigen lassen? Allgemeine Java-Themen 10
Landei Welche Klassen fehlen im JDK? Allgemeine Java-Themen 18
S Kapselung Statische Helper Klassen Allgemeine Java-Themen 5
A Vererbung Klassen-Downcasting wirft ClassCastException Allgemeine Java-Themen 2
N Java Klassen mit ID Allgemeine Java-Themen 21
antonbracke Klassen Klassen gegenseitig laden Allgemeine Java-Themen 4
R SecurityManager für einzelne Klassen/Threads? Allgemeine Java-Themen 38
T Java Klassen aus externer .jar laden und ausführen Allgemeine Java-Themen 3
S JPA und Entity-Klassen: Wert ungültig Allgemeine Java-Themen 6
M OO / Klassen / Projektstruktur Allgemeine Java-Themen 5
O Klassen werden nicht importiert Allgemeine Java-Themen 3
E selber Klassen kompilieren/ prüfen Allgemeine Java-Themen 5
Z Abstrakte Klassen /Interface Allgemeine Java-Themen 5
A Klassen und JLabel's Allgemeine Java-Themen 12
J Java-Implementierung diverser Beziehungen zwischen Klassen bzw. Objekten Allgemeine Java-Themen 2
M Methoden/Klassen für andere Projekte Allgemeine Java-Themen 4
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
E instanceof mit nicht öffentlichen Klassen Allgemeine Java-Themen 2
D Datentypen Typbestimmung unbekannter Wrapper-Klassen Allgemeine Java-Themen 5
S Klassen in einer Schleife durchlaufen Allgemeine Java-Themen 11
X Generic muss zwei Klassen/Interfaces erfüllen Allgemeine Java-Themen 5
N Vergleich eigener Klassen Allgemeine Java-Themen 5
M Klassen Array aus Klassen bestimmter Klassen ? Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben