定义在一个类内部的类称为内部类。内部类访问权限可以是public、protected、default或private,可以声明为abstract供其他内部类或外部类继承,可以声明为static、final,也可以实现特定的接口。外部类可以访问内部类的所有方法与属性,包括私有属性和方法。
ps:这里只讨论成员内部类,不讨论局部内部类(包含匿名内部类),本文所有涉及的内部类均为成员内部类。
创建实例
package com.cc.innerclass;
public class OuterClass
{
public static void main(String[] args)
{
InnerClass innerClass = new OuterClass().new InnerClass();//通过外部类实例来实例化内部类对象
OuterClass.StaticInnerClass innerClass2 = new OuterClass.StaticInnerClass();//实例化静态内部类对象
}
private void outerClassMethod(){
System.out.println("==========outerClassMethod=========");
}
private class InnerClass{
private void innerClassMethod(){
outerClassMethod();//内部类能访问外围类的所有成员
}
}
private static class StaticInnerClass{
}
}
内部类访问外部类
非静态内部类可以访问外部类的所有成员。
静态内部类
内部类只有声明static,才能定义静态成员。静态内部类只能访问外部类的静态成员,不能访问外部类的非静态成员,非静态方法可以访问外部类的静态成员,实例化对象不需要外部类的实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)