Anonymes Objekt

Was das betrifft, weiß ich, was das bedeutet, aber nur Beispiele suche ich, weil ich das
in der Aufgabe (bei der Einsendeaufgaben) eingeben muß.

kreis.put(new Integer(0), new Kreis(10, 10, 5));
Das ist doch kein anynomes Objekt, da ein Name vorhanden ist.

    return false;
}

Ist ein Objekt also anynom, da kein Name drauf steht?

ne das sind beides keine anonymen Objekte, im ersten könnte man vielleicht Integer und Kreis als so etwas bezeichnen aber richtig anonym ists noch nicht
new Thread().start(); ist eins
Direkt nach dem Erzeugen wird es gestartet und sofort vergessen.

Hier mal etwas Text zu anonymen Klassen: http://openbook.galileocomputing.de/javainsel8/javainsel_09_002.htm#mjb7f4ce9c849841887b132f2cfd2e27d1

Ich grübele gerade, da es unterschiedlich ist.

Ist anonyme Klasse nicht gleich wie anonymes Objekt?

Im Lernheft steht’s:

Ein solches Objekt, das nicht erst einem Bezeichner zugewiesen wird, nennt man
ein anonymes Objekt. Es liegt auf der Hand, dass man ein solches Objekt nur an der
Stelle, an der es erzeugt wird, verwenden kann, weil es keinen Bezeichner hat, mit dem
man es auch an anderen Stellen ansprechen könnte.

Was nun? kopfkratz

Das stimmt schon.
Aber ein Objekt ist nur ein vom Reißbrett in die Produktion gegebenes und fertig produziertes “Ding” (Klasse).
Die Klasse ist der Baulplan für Objekte.
Das Objekt ist quasi eine Materialisierung einer skizzierten und beschriebenen Sache.
Die Objekt orientierte Programmierung hält sich ziemlich nah an der Denkweise des Menschen und an die “wirkliche” Welt.

Na gut, das werde ich mir dazu merken.
Eagle Eye’s Code: new Thread().start();
Und noch mehr irgendwelche Beispiele?

Jemand hat eine Frage darüber irgendwo im Forum gestellt, siehe unter
http://forum.javacore.de/viewtopic.php?t=10537
Ist Michael’s Antwort korrekt?

Nachtrag:
Noch ein Thema gibt es, hier:
http://www.java-forum.org/java-basics-anfaenger-themen/37567-anonym-objekt.html

Uff, das macht mich auch verwirrt.

Anonyme Klassen werden oft auch bei der Verarbeitung von Events benutzt.

Beispielcode:

addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
      System.out.println("Button wurde geklickt");
   }
});

die erste Antwort ist auf alle Faelle richtig… anonyme Objekte sind wie hier schon gesagt Objekte die direkt „verwertet“ werden ohne eine Referenz zu speichern.

Michaels zweite Antwort mit den Methoden ist falsch… das hat nichts mit anonymen Objekten zu tun.

OFFTOPIC…
so und da ich auch hier noch Groovy einbringen muss (ja das muesst ihr ueber euch ergehen lassen)…

was ist schoener

JButton button = new JButton("Button")
button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            System.out.println("Button wurde geklickt");
         }
});

oder

button(text:'Button', actionPerformed:{ println "Button wurde geklickt" })

(Wieder hochgepoppt durch ein „edit“ nach 11 Jahren…)

Inzwischen gibt es ja auch Lambdas und Method References - nur der Vollständigkeit halber erwähnt:

JButton button = new JButton("Button")
button.addActionListener(e -> System.out.println("Button wurde geklickt"));

oder

JButton button = new JButton("Button")
button.addActionListener(this::buttonWasClicked);