内部类
定义:一个类定义与另一个类的内部,那么称为内部类
内部类的类别:
1、成员内部类:
访问方式:
(1)在外部类提供一个方法创建内部类的对象进行访问。
(2)在其他类直接创建该内部类的对象。
其格式:外部类.内部类 变量 = new 外部类().new 内部类();
2、方法内部类:
(1) 方法中的内部类没有访问修饰符, 即方法内部类对包围它的方法之外的任何东西都不可见。
(2) 方法内部类只能够访问该方法中的局部变量,所以也叫局部内部类。而且这些局部变量一定要是final修饰的常量。
内部类的好处:
内部类可以直接访问外部类的所有成员。
内部类的应用:
在描述事物A时,发现其内部存在一复杂的事物B;且事物B需要访问事物A的属性,这是便可以使用内部类描述事物B
eg:电话卡----->套餐
class 电话卡{
电话号码;
话费;
}
当内部类和外部类具有同一属性时,使用内部类属性(遵从就近原则)
若需使用内部类对象访问外部类属性,则使用
外部类.this.属性;可达成目的
(因为实例化内部类对象时,new了内部类和外部类。所以单纯的this jvm无法判断对象是哪一个)
内部类一旦出现静态成员,那该类也必须用static修饰。
原因:静态成员的数据是不需要对象存在的(静态成员变量在.class被加载时就存在的)