内部类的位置:
内部类可以作用在方法里以及外部类里,作用在方法里称为局部内部类,作用在外部类里
分为实例内部类和静态内部类。
外部类和内部类的类访问修饰符:
外部类可以是 public 和默认的,内部类可以是 public,private,prote 类 ct
型 ed 的内部类和外部类的关系:
*在【实例内部类中】
A :内部类可以访问外部类中所有的任何访问修饰符的成员。
B :而一个外部类实例对应 0 个或 n 个内部类实例。在外部类中不能直接访问内部
类的成员,必须通过内部类的实例去访问才可以
*在【静态内部类中】
A :静态内部类可以直接访问外部类的静态成员,如果访问外部类的实例成员,就
必须通过外部类的实例去访问。在创建内部类的实例的时候,不必创建外部类的实例.。
B :外部类可以通过完整的类名来直接访问静态内部类的静态成员,如果要访问
静态内部类的非静态成员则需要创建静态内部类的一个实例才行
packagecom.ming;
public class StaticInnerTest {
public static class A{
public int a = 10;
static int b =
100;
}
public static void main(String[] args)
{ StaticInnerTest.A mya = newStaticInnerTest.A();
mya. a = 1234;
System. out .println( "" + mya. a);
}
}
以上是可以运行成功的,已经经过测试
*在【局部内部类中】
A :局部内部类和实例内部类一样,可以访问外部类的所有成员
B :外部类根本不知道局部内部类的存在,所以访问不了。
内部类的分类:
1, 成员内部类(实例内部类,静态内部类) | 2. 局部内部类