您的位置:首页 > 编程语言 > Java开发

Java 内部类种类及使用解析

2013-02-08 16:12 363 查看

  Java 内部类种类及使用解析

内部类Inner Class

  将相关的类组织在一起,从而降低了命名空间的混乱。

  一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分。

  Java中的内部类共分为四种

  静态内部类static inner class (also called nested class)

  成员内部类member inner class

  局部内部类local inner class

  匿名内部类anonymous inner class

静态内部类Static Inner Class

  最简单的内部类形式。

  类定义时加上static关键字。

  不能和外部类有相同的名字。

  被编译成一个完全独立的.class文件,名称为OuterClass$InnerClass.class的形式。

  只可以访问外部类的静态成员和静态方法,包括了私有的静态成员和方法。

  生成静态内部类对象的方式为:

  OuterClass.InnerClass inner = new OuterClass.InnerClass();

  静态内部类使用代码:

Swing中使用匿名内部类

package com.learnjava.innerclass;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;

public class SwingTest
{
public static void main(String[] args)
{
JFrame frame = new JFrame("JFrame");
JButton button = new JButton("JButton");

button.addActionListener(new ActionListener()
{
// new出来一个实现了ActionListener接口的类的实例

@Override
public void actionPerformed(ActionEvent arg0)
{
System.out.println("Hello World");

}
});

//加入按钮
frame.getContentPane().add(button);

//设置关闭行为
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(200, 200);

frame.addWindowListener(new WindowAdapter()
{
//也可以使用继承了适配器类的匿名内部类
@Override
public void windowClosing(WindowEvent e)
{

System.out.println("Closing");
System.exit(0);
}
});
frame.setVisible(true);
}

}


参考资料

  张龙老师Java SE系列视频教程。

  博客早期一篇内部类文章:

  /article/4672759.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: