一、概述
1、什么是内部类
将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。
2、成员内部类
成员内部类 :定义在类中方法外的类。
定义格式:
在描述事物时,若一个事物内部还包含其他事物,就可以使用内部类这种结构。比如,汽车类
Car 中包含发动机类 Engine ,这时, Engine 就可以使用内部类来描述,定义在成员位置。
代码举例:
3、访问特点
内部类可以直接访问外部类的成员,包括私有成员。
外部类要访问内部类的成员,必须要建立内部类的对象。
创建内部类对象格式:
访问演示,代码如下:
定义类
public class Person {
private boolean islive = true;
// 成员内部类
public class Heat{
public void jump(){
if (islive){
System.out.println("心脏砰砰跳");
}else{
System.out.println("心脏熄火啦");
}
}
}
public boolean isIslive() {
return islive;
}
public void setIslive(boolean islive) {
this.islive = islive;
}
}
测试类:
public class PersonTest {
//外部类.内部类 变量名 = new 外部类().内部类();
public static void main(String[] args) {
//Person.Heat heat = new Person().new Heat();
Person p = new Person();
Person.Heat heat = p.new Heat();
heat.jump(); // 心脏砰砰跳
p.setIslive(false);
heat.jump(); // 心脏熄火啦
}
}
内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。
比如,Person$Heart.class