1. 程式人生 > 實用技巧 >java 巢狀類

java 巢狀類

簡介

以前不怎麼理解巢狀類是什麼意思。
感覺java核心程式設計講的很好

巢狀類有兩個好處:命名控制和訪問控制。
如果 LinkedList 類裡嵌套了 Iterator 這樣使用類的時候
LinkedList::Iterator 這樣就不會與其他名為Iterator的類發生衝突。
還有一種是訪問控制 如果 Iterator 是 LinkedList 中的私有類,那麼LinkedList 就可以訪問 Iterator中的所有資料。而不會暴露給其他的程式碼。

code

package cn;

import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;

import javax.swing.JOptionPane;
import javax.swing.Timer;

public class InnerClassTest {
	public static void main(String[] args){
		TalkingClock clock = new TalkingClock(3000, true);
		clock.start();
		
		JOptionPane.showMessageDialog(null, "Quit program?");
		System.exit(0);
	}
}

class TalkingClock{
	private int interval;
	private boolean beep;
	
	public TalkingClock(int interval, boolean beep){
		this.interval = interval;
		this.beep = beep;
	}
	
	public void start(){
		ActionListener listener = new TimePrinter();
		Timer t = new Timer(interval, listener);
		t.start();
	}
	
	public class TimerPrinter implements ActionListener{
		public void actionPerformed(ActionEvent event){
			System.out.println("At the tone, the time is " + new Date());
			if (beep)
				Toolkit.getDefaultToolkit().beep();
		}
	}
}