不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦 > 知識(shí)大全 > 知識(shí)百科 > 百科知識(shí) > java中什么是內(nèi)部類介紹

java中什么是內(nèi)部類介紹

時(shí)間: 歐東艷656 分享

java中什么是內(nèi)部類介紹

  java內(nèi)部類

  內(nèi)部類學(xué)習(xí)

  所謂內(nèi)部類(Inner Class),顧名思義,就是指定義在另外一個(gè)類中的類,我們?yōu)槭裁匆@么做呢?為什么不直接定義它而要在別的類中定義一個(gè)內(nèi)部類呢?這樣做主要有如下三個(gè)原因:

  1. 內(nèi)部類的方法可以訪問(wèn)它所在的外部類中的所有域,包括私有型別的;

  2. 對(duì)于同一個(gè)包中的其它類它是隱藏的;

  3. 匿名的內(nèi)部類可以讓我們很方便的定義事件響應(yīng)(call back),這在GUI編程中很常見(jiàn);

  一.內(nèi)部類(inner class)如何訪問(wèn)外部類(outer class)中的域

  因?yàn)榘踩珯C(jī)制的原因,內(nèi)部類通常聲明為private類別,因此,只有在內(nèi)部類所在的外部中才能夠創(chuàng)建內(nèi)部類的對(duì)象,對(duì)其它類而言它是隱藏的。另外,只有內(nèi)部類才會(huì)用到private修飾符,一般的類如果用private修飾符則會(huì)報(bào)錯(cuò)。

  下面看如下的代碼:

  Java代碼

  package cn.edu.hust.cm.test;

  import java.awt.event.ActionListener;

  import java.awt.event.ActionEvent;

  import java.awt.Toolkit;

  import javax.swing.JOptionPane;

  import javax.swing.Timer;

  public class InnerClassTest {

  public InnerClassTest() {

  super();

  // TODO Auto-generated constructor stub

  }

  public static void main(String[] args) {

  Court court=new Court(10000,true);

  court.start();

  JOptionPane.showMessageDialog(null,"停止么,CMTobby?");

  System.exit(0);

  }

  }

  class Court{

  public Court(int interval,boolean beep){

  this.interval=interval;

  this.beep=beep;

  }

  public void start(){

  TimerPrinter action=new TimerPrinter();

  Timer t=new Timer(interval,action);

  t.start();

  }

  private int interval;

  private boolean beep;

  private class TimerPrinter implements ActionListener{

  public void actionPerformed(ActionEvent e){

  System.out.println("Cindyelf,would you be my mm?");

  if(beep) Toolkit.getDefaultToolkit().beep();

  }

  }

  }

245917