视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
内部类的大概介绍
2020-11-09 08:23:06 责编:小采
文档


内部 类 内部 类有二种:成员式的(像外部类的属性)和区域式的(像外部类中的方法中的变量)。 一、成员式 该中的 内部 类有可分为:类级别(static声明的 内部 类)和对象级别 InnerClasses.java package innerClass; public class InnerClasses { private

内部类

内部类有二种:成员式的(像外部类的属性)和区域式的(像外部类中的方法中的变量)。

一、成员式

该中的内部类有可分为:类级别(static声明的内部类)和对象级别

InnerClasses.java

package innerClass;

public class InnerClasses {

private static String staticAttribute = " Outter class static attribute ";

private String instantAttribute = "Outter class instant ";

//对象级别的方法

public void instantMethod(){

System.out.println("Outter class instant method ");

}

//类级别的方法

public static void staticMethod(){

System.out.println("Outter class static method");

}

//类级别的内部类

/**

* 该内部类中的方法 必须方位外部类的类级别的属性和方法,否则不错。

* 如:只能访问外部类的staticAttribute属性和staticMethod()方法

* */

public static class StaticInnerClass{

public StaticInnerClass(){

System.out.println("static Inner class ");

}

public void access(){

System.out.println(staticAttribute);

staticMethod();

}

}

//对象级别的内部类

/**

* 该内部类可以访问外部类中的所有的方法和属性

* */

public class InstantInnerClass{

public InstantInnerClass(){

System.out.println("Instant Inner Class");

}

public void access(){

System.out.println(instantAttribute);

staticMethod();

}

}

}

内部类的访问方式:

1、类级别的内部类 通过外部类的类名访问内部类

2、对象级别的内部类,必须通过外部类的对象访问

package innerClass;

public class TestClass {

public void callStaticInnerClass(){

//用外部类的类名来访问

InnerClasses.StaticInnerClass sic

= new InnerClasses.StaticInnerClass();

sic.access();

}

public void callInstantInnerClass(){

//访问对象级别的内部类需要 外部类的对象才能访问

//声明一个外部类的兑现ic

InnerClasses ic = new InnerClasses();

//对象访问 对象级别的内部类

InnerClasses.InstantInnerClass iic ;

iic = ic.new InstantInnerClass();

}

}

抽象内部类

Static修饰的内部抽象类 可以通过外部类的类名 访问到,被其他类继承

成员级别的内部类抽象类,只能被该外部类中的其他的内部类继承

二、区域式

该中的内部类可分为:变量级别的和匿名级别

变量级别的内部类即声明在方法中的类。该内部类不适用。

匿名内部类。即没有类名的内部类。

package innerClass;

import java.awt.Frame;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class AnonymousInnerClass {

public static void main(String[] args){

Frame f = new Frame("Anonymous Inner Class Example ");

//该方法的参数是一个匿名内部类的应用

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

f.setSize(200,200);

f.setVisible(true);

}

}

下载本文
显示全文
专题