黑马程序员技术交流社区
标题:
静态内部类
[打印本页]
作者:
小邱
时间:
2015-4-2 22:02
标题:
静态内部类
/*
静态内部类
当内部类出现在外部类成员的位置上时,该内部类可以被成员修饰符修饰。
如:private 将内部类在外部类中进行封装;
static 修饰后将有static的特性。
1.当内部类被static修饰后,只能访问被static修饰的外部类成员,出现了访问局限性。
2.当内部类定义了静态成员,该内部类必须是静态的
3.当外部类的静态方法访问内部类时,该内部类必须是静态的。
*/
class Outer
{
public static int x=3;//因为类Inner是静态类,所以x也要是静态的
static class Inner
{
void method()
{
System.out.println("非静态方法"+x);
}
static void function()//因为内部类定义了静态成员,所以该内部类Inner必须是静态的
{
System.out.println("静态方法"+x);
}
}
class Inner2
{
void method()
{
System.out.println("非静态方法"+x);
}
}
static void show()
{
new Inner2().method();//编译会出错,因为当外部类的静态方法访问内部类时,该内部类必须是静态的。
new Inner().method();//编译通过
}
}
class Test
{
public static void main(String[] args)
{
//外部类调用静态内部类的非静态成员
new Outer.Inner().method();
//外部类调用静态内部类的静态成员
Outer.Inner.function();
Outer.show();
}
}
作者:
MartinYu
时间:
2016-7-5 09:55
很好!!!!!1
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2