Java学习二十一:
一、内部类
1、概述
就是在一个类中定义一个类,比如在一个类A的内部定义一个类B,类B就被称为内部类
2、格式
public class 类名 {
修饰符 class 类名 {
}
}
范例:
public class Outer {
public class Inner {
}
}
3、访问特点
① 内部类可以直接访问外部类的成员,包括私有
② 外部类要访问内部类的成员,必须创建对象
4、范例
public class Outer {
private int num = 10;
public class Inner {
public void show() {
System.out.println(num); //内部类可以访问外部类的元素,包括私有的
}
}
public void method() {
Inner i = new Inner(); //外部类要访问内部类的成员,必须创建对象
i.show();
}
5、成员内部类
①按照内部类在类中定义的位置不同,可以分为如下两种形式
· 在类的成员位置:成员内部类
· 在类的局部位置:局部内部类
②成员内部类,外界如何创建对象使用:
· 格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象
· 范例:Outer.Inner oi = new Outer().new Inner();
③范例
public class Outer {
private int num = 10;
public class Inner {
public void show() { //成员内部类
System.out.println(num);
}
}
/*
测试类
*/
public class InnerDemo {
public static void main(String[] args) {
//创建内部类对象,并调用方法
Outer.Inner oi = new Outer().new Inner();
oi.show();
}
}
6、局部内部类
①局部内部类是在方法中定义的类,所以外界是无法直接使用,需要在方法内部创建对象并 使用,该类可以直接访问外部类的成员,也可以访问方法内的局部变量
②范例
public class Outer {
private int num = 10;
public void method() {
class Inner {
public void show() {
System.out.println(num); //内部类可以访问外部类的元素,包括私有的
}
}
}
}