Java/Class/Anonymous class

Материал из Java эксперт
Перейти к: навигация, поиск

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);
  }
}