Java/Class/Anonymous class
Версия от 18:01, 31 мая 2010; (обсуждение)
Содержание
Access inner class from outside
public class Main {
public static void main(String[] args) {
Outer outer = new Outer();
outer.new Inner().hello();
}
}
class Outer {
public class Inner {
public void hello(){
System.out.println("Hello from Inner()");
}
}
}
an example of a simple anonymous class
public class MainClass {
public static void main(String[] args) {
Ball b = new Ball() {
public void hit() {
System.out.println("You hit it!");
}
};
b.hit();
}
interface Ball {
void hit();
}
}
Anonymous inner class
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class SimpleEvent {
public static void main(String[] args) {
JButton close = new JButton("Close");
close.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
JFrame f = new JFrame();
f.add(close);
f.setSize(300, 200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
Tick Tock with an Anonymous Class
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.Timer;
public class MainClass {
private String tickMessage = "Tick...";
private String tockMessage = "Tock...";
public static void main(String[] args) {
TickTockAnonymous t = new TickTockAnonymous();
t.go();
}
private void go() {
Timer t = new Timer(1000, new ActionListener() {
private boolean tick = true;
public void actionPerformed(ActionEvent event) {
if (tick) {
System.out.println(tickMessage);
} else {
System.out.println(tockMessage);
}
tick = !tick;
}
});
t.start();
JOptionPane.showMessageDialog(null, "Click OK to exit program");
System.exit(0);
}
}