Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 

Code Block
languagejava
titleSpecial ActionListener
linenumberstrue
public class MySpecialActionListener implements ActionListener {
	
	public void actionPerformed(ActionEvent e) {
		// Do something special	
	}
}
 
public class SomeClass implements ActionListener {
	
	button1.addActionListener(this);
	button2.addActionListener(this);
	specialButton.addActionListener(new MySpecialActionListener);
 
	public void actionPerformed(ActionEvent e) {
		// Do something
	}
}
 
 
 

Eksempel v1

 

Code Block
languagejava
titleAnonymous ActionListener
linenumberstrue
public class SomeClass implements ActionListener {
 
	button1.addActionListener(this);
	button2.addActionListener(this);
	
	ActionListener actList = new ActionListener() { 
			public void actionPerformed(ActionEvent e) {
		        // Do something special
    		}
	};
	
	specialButton.addActionListener(actList);
	
	public void actionPerformed(ActionEvent e) {
		// Do something
	}
}

Eksempel v2

...

 

Code Block
languagejava
titleRunable
linenumberstrue
public class SuperfastRunable implements Runable {
	
	// Forced to implement
	public void run() {
		// Do something
	}
}
 
public static void main(String[] args) {
	
	// code.. 	
	SuperfastRunable sfr = new SuperfastRunable();
	// code..
} 

 

 

 

 

Code Block
languagejava
titleAnonymous Runable
public static void main(String[] args) {
	 	
	// code..	

	Runable r = new Runable() {
		public void run() {
			// Do something
		}
	};
 
	// code..
} 

 

 


Som man igjen kan se, kan man spare seg for bryet med å lage en ny klasse om man bare trenger én instans av den på et/få sted(er) i koden. Pass dog på; mange anonyme klasser kan fort gjøre koden uoversiktlig.

Inline

...

overriding av metoder ved arv

På samme måte som med implementasjon av grensesnitt, kan man også arve klasser inline ved å lage en anonym klasse. Dette kan være særlig nyttig dersom man f.eks. ønsker å lage én instans av en klasse, som skal override en eller få metoder. Se eksempel under.

...

DENNE SIDEN ER UNDER UTVIKLING