探讨Java中内部类及其用法

2019-09-10 07:22刘欣
天津教育·中 2019年5期
关键词:驱动程序静态定义

刘欣

Java中的内部类在程序中起着“心脏”的作用,能用此实现特定的功能,具有非常好的封装性。使用内部类可以很方便地编写事件驱动程序。本文将结合简单实例内部类理解及用法进行详细描述。

一、内部类的定义及分类

内部类指的是Java类体内定义的类,也称为嵌套类。通常类体内有属性与方法两大部分,有了内部类,类体内可包括属性、方法及类三个部分。内部类可分为成员内部类、静态内部类与方法内部类,以及一种特殊的匿名内部类。下面分别阐述。

二、成员内部类

成员内部类指的是与外部类的属性、方法并列定义且作为外部类的一个成员存在的类。比如:

class outter{

void f(   ){ //inner bb=new inner(); bb.g();

System.out.print(“我是外部类的方法”);}

class inner{ void g(   ){

System.out.print(“我是内部类的方法”);}}

public static void main(String args[]){

outter.inner aa=new outter(  ).new inner(   );

aa.g(   );}}

例中inner是成员内部类。若想通过外部类去访问内部类,则需通过外部类对象创建内部类对象,语法如下:

外部类名:内部类名变量名=new外部类名(  )·new内部类名(  );然后用对象访问内类部里的方法。代码如下:

outter.inner aa=new outter().new inner();

aa.g(   );

另外,可在内部类里访问外部类成员方法。

三、静态内部类

静态内部类是内部类的前面加上了修饰词static,举例如下:

public class outter {

void f(  ) {

System.out.println("我是外部类的方法");

new inner(   ).g(   ); }

static class inner{  void g(   ) {

System.out.println("我是內部类的方法");}}

public static void main(String[] args) {

outter.inner aa=new outter.inner(   );

aa.g(   ); }}

其中inner就是静态内部。如果想通过外部类去访问内部类,只需要直接创建外部类的对象去访问内部方法,创建对象的具体语法格式如下:

外部类名.内部类名 对象名=new 外部类名.内部类名();

然后用外部类对象去访问内部类里的方法。对应上例中的代码为:

outter.inner aa=new outter.inner();

四、匿名内部类

匿名内部类顾名思义,就是没有名字的内部类,而且是方法内部类。在GUI编程中用得较多,用于实现每个组件注册了监听事件后,来完成事件的响应动作。格式为:

方法名(new 接口名(   ){});

举例如下:

interface shout{ void fg(); }

public class outter {

public static void main(String[] args) {

fh(new shout(   ) { public void fg(    ) {

System.out.println("匿名内部类实现"); }});}

public static void fh(shout ab) {ab.fg(   ); }}

五、方法内部类

方法内部类又叫局部内部类,该类位于方法体内,使用范围比方法小,比较少用。特别要注意的是方法体内不能定义静态方法内部类。

六、结语

除了可方便定义外,内部类还具有如下特点:

1.不为同一包的其他类所见,具有很好的封装性。

2.使用内部类可用于编写事件驱动程序。

3.匿名内部类可以方便的定义运行时回调。

(责任编辑  李 芳)

猜你喜欢
驱动程序静态定义
以爱之名,定义成长
避免Windows系统更新反复安装显示驱动
定义“风格”
阻止Windows Update更新驱动程序
猜猜他是谁
基于HTML5静态网页设计
分布式系统负载均衡关键技术及其发展脉络
妙用鼠标驱动
驱动程序更新与推荐
教你正确用(十七)