Arten von Java Klassen

Status
Nicht offen für weitere Antworten.

Reality

Top Contributor
Ich möchte euch drei Arten von Klassen vorstellen und wie sie eure Arbeiten erleichtern. Zu private, public etc. werde ich jedoch nichts sagen.

1. Die normale Klasse

Diese Klasse ist eine normale Klasse, wie sie jeder kennt.

Java:
import java.awt.event.*;
import java.applet.*;

public class MousePressedDemo extends Applet {
  public void init(){
    addMouseListener(new MyMouseAdapter(this));
  }
}

class MyMouseAdapter extends MouseAdapter{
MousePressedDemo mousePressedDemo;

  public MyMouseAdapter(MousePressedDemo mousePressedDemo){
    this.mousePressedDemo = mousePressedDemo;
  }

  public void mousePressed(MouseEvent e){
    mousePressedDemo.showStatus("Maustaste gedrückt");
  }
}

Hier muss man eine Instanz von MousePressedDemo erstellen die über den Konstruktor übergeben wird, um dessen Methode nutzen zu können.

2. Innere Klassen

Java:
import java.awt.event.*;
import java.applet.*;

public class InnerClassDemo extends Applet {
  public void init(){
    addMouseListener(new MyMouseAdapter());
  }

  class MyMouseAdapter extends MouseAdapter{ //innere Klasse
    public void mouseReleased(MouseEvent e){
      showStatus("Maus gedrückt");
    }
  }
}

Die Klasse MyMouseAdapter wird einfach innerhalb InnerClassDemo erzeugt. Die innere Klasse erbt somit alle Variablen und Methoden und es muss keine Instanz angelegt werden.

3. Die anonyme innere Klasse

Java:
import java.awt.event.*;
import java.applet.*;

public class AnonymousInnerClassDemo extends Applet {
  public void init(){
    addMouseListener(new MouseAdapter(){
      public void mousePressed(MouseEvent me){
        showStatus("Maustaste gedrückt");
      }
    });
  }
}

Der anonymen inneren Klasse wurde wie ihr seht keinen Namen zugewiesen. Die Klasse wurde direkt in die Methode addMouseListener() implementiert. Diese Art von Klasse spart am Meisten Code.

Liebe Grüße
Reality
 
Zuletzt bearbeitet von einem Moderator:
B

Beni

Gast
4. Die lokale Klasse

Die lokale Klasse wird wohl selten verwendet. Der Hauptunterschied zu der anonymen Klasse ist, dass man mehrere Instanzen von ihr (innerhalb derselben Methode) anlegen kann.

Anders als die Innere Klasse ist sie nicht in der ganzen umschliessenden Klasse sichtbar, sondern nur innerhalb einer Methode.

Java:
public class LocalClassDemo{
	public void doSomething(){

		class LocalClass extends JFrame {
			public LocalClass( String title ) {
				setTitle( title );
				setBounds( 20, 20, 600, 300 );
				setDefaultCloseOperation( EXIT_ON_CLOSE );
			}
		};

		LocalClass instance = new LocalClass( "Hallo du da" );
		instance.setVisible( true );
	}
}
 

L-ectron-X

Gesperrter Benutzer
Ein kleines "Zubrot":

Es gibt vier verschiedene Typen von geschachtelten Klassen:
  • die Elementklasse - ist als ein Element einer äußeren Klasse gekapselt
  • die lokale Klasse - ist in einem Block, z.B. einer Methode gekapselt
  • die anonyme Klasse - ist eine lokale Klasse ohne Namen
  • die static geschachtelte Klasse bzw. Schnittstelle - verhält sich wie Klassenmethoden bzw. Klassenvariablen
Alle Typen dieser Form von Klassen haben eine Gemeinsamkeit: sie sind innerhalb einer umschließenden Klasse definiert.
 
Status
Nicht offen für weitere Antworten.

Oben