上篇文章--笔记19简要介绍了成员内部类、局部内部类和匿名内部类,下面对成员内部类再补充一些内容。
主要有以下6点:
1.成员内部类不可以有静态成员,成员变量为static final时除外
2.外部类不可以直接访问成员内部类的成员变量或调用成员内部类的成员方法
3.成员内部类可以无限制的访问外部类的成员变量、调用外部类的成员方法
4.成员内部类的成员与外部类成员同名时,内部类成员会屏蔽外部类的同名成员
5.成员内部类本身可以由访问权限修饰符修饰
6.成员内部类的成员变量和成员方法也可以由访问权限修饰符修饰
(注:时间有点晚了,5、6条下篇再写吧)
作者: 蝉蝉
请尊重作者劳动成果,转载请在标题注明“转载”字样,并标明原文链接:
下面分别展开说明:
1.成员内部类不可以有静态成员,成员变量为static final除外
示例:
1 //笔记19:内部类--成员内部类--不能有静态成员,成员变量为static final时除外 2 class InnerClass { 3 String name = "li"; 4 String inname; 5 static String ingender = "female"; 6 7 //不能有静态成员,除非声明为static final 8 void testStFi() { 9 System.out.println("ingender:" + ingender); 10 } 11 12 //不能有静态成员方法 13 static void testStFiMeth() { 14 System.out.println("成员内部类的静态成员方法"); 15 } 16 } 17 18 public static void main(String[] args) { 19 20 Person per = new Person(); 21 Person.InnerClass inC = per.new InnerClass(); 22 23 //笔记19:内部类--成员内部类--4不能有静态成员,除非声明为static final 24 inC.testStFi(); 25 }