一、内部类的作用
1.内部类提供更好的封装,可以把内部类隐藏在外部类里面,不容许同一个包中其他类进行访问。
2.内部类的方法可以直接访问外部类的所有数据。
3.使用更加方便。
二、内部类的分类:
1.成员内部类(作为外部类的一个成员)
2.静态内部类
3.方法内部类(内部类在外部类的一个方法里面)
4.匿名内部类
三、内部类的使用
1.成员内部类的使用:
<span style="font-family:microsoft yahei;font-size:18px;">package com.bluesky;
public class outer {
private int a =99; //定义外部类的数据成员
public class inner{ //该内部类作为外部类的一个成员
int b =88; //内部类的数据成员
public void test(){
system.out.println("访问外部类的a:"+a); //访问外部类的数据成员
system.out.println("访问内部类的b:"+b); //访问内部列的数据成员
}
}
public static void main(string[] args) {
outer o = new outer(); //先生成一个外部类的对象实例
inner in = o.new inner(); //产生一个内部类的对象实例
in.test(); //调用内部类的方法
}
}</span>
运行结果:
2.静态内部类的使用
package com.bluesky;
public class methodouter {
public void test(){
final int a=12;
int b=100;
class inner{ //该内部类定义在外部类的方法的内部
public void print(){
int v=56;
system.out.println("访问外部类中的常量a:"+a);
system.out.println("访问外部类中的b:"+b);
system.out.println("访问内部类中的c:"+v);
}
}
inner in = new inner(); //在方法体里面先产生内部类的对象实例
in.print(); //在外部类的方法里面调用内部类的方法
}
public static void main(string[] args) {
methodouter mo = new methodouter(); //产生外部类的对象实例
mo.test(); //调用外部类的方法
}
}
运行结果:
3.静态内部类的使用:
package com.bluesky;
public class staticouter {
private static int a=99;
static int b =78;
public static class inner{ //定义静态内部类
static int a=2;
public void test(){
system.out.println("访问外部类的b:"+b);
system.out.println("访问外部类的a:"+staticouter.a);
system.out.println("访问内部类的a:"+a);
}
}
public static void main(string[] args) {
inner in = new inner(); //因为是静态的,所有可以直接产生对象实例
in.test(); //调用静态内部类的方法
}
}
运行结果:
匿名内部类的放到后面,敬请期待!
以上就是java中的内部类的使用的内容。