Dez 03

This post is also available in: Englisch

Heute wird der Schwierigkeitsgrad nochmal erhöht :)

Bis jetzt haben wir nur relativ einfache innere Klassen anhand von Klassen/ interfaces implementiert…. heute werden nochmal zusätzlich Argumente ins Spiel gebracht. Gehen wir mal von folgenden Vorraussetzungen aus:

class Gruppe {

void setAufgabe(Aufgabe a) { }

}

interface Aufgabe {

void AufgabeInfo();

}

Wir haben hier die Klasse Gruppe, die für die Ausführung der Methode setAufgabe, das Interface Aufgabe (bzw. eine Instanz der Klasse, die dieses Interface implementiert) benötigt.

So, nun die Frage, wie man möglichst elegant von der Klasse Gruppe eine anonyme Klasse implementiert, die ja auch eine (anonyme) Instanz von Aufgabe benötigt?

public class Abteilung {

public static void main(String args [ ]){

Gruppe g = new Gruppe (); // Achtung: Hier keine Definition einer (anonymen) inneren Klasse
g.setAufgabe (new Aufgabe(){ // hier wird innerhalb der Argument-Übergabe das benötigte Argument als anonyme innere Klasse definiert

public void AufgabeInfo() { // Implementation der nötigen Methoden vom Interface Aufgabe

System.out.println(“AufgabeInfo”);

}

}); // Achtung: hier weichen wir von der üblichen Schreibweise }; ab und schliessen statt dessen  (da ja innerhalb der Argument-Überhabe) mit }); ab

}

}

  • Print
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • RSS
  • Blogosphere
  • email
  • PDF
  • Wikio
  • Technorati
  • Digg
  • DZone

Leave a Reply

preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs