什么是内部类?
一个类定义在另一类的里面,那里面的类就被称为内部类
内部类的特点是什么?
内部类可以直接访问外部类的非私有成员和私有成员
外部类可以访问内部类里的内容,但是,要先创建内部类对象,然后再对其进行访问
内部类分为哪几种?
成员内部类:
如果成员内部类被public修饰的时候:
例:
class Outer {
public class Innner {
int i = 2;
public void eat() {
System.out.println("吃");
}
}
}
class Demo {
public static void main(String[] args) {
Outer.Inner oi = new Outer().new Inner();
Systme.out.println(oi.i);
oi.eat();
}
}
如果成员内部类被private修饰的时候:
例:
class Outer {
private class Inner {
int i = 2;
public void eat() {
Systme.out.println("吃");
}
}
public void print() {
Inner inner = new Inner();
inner.eat();
System.out.println(inner.i);
}
}
class Demo {
public static void main(String[] args) {
Outer outer = new Outer();
outer.print();
}
}
如果成员内部类被static修饰的时候:
例:
class Outer {
static class Inner {
int i = 2;
public void eat() {
System.out.println("eat");
}
}
}
class Demo {
public static void main() {
Outer.Inner oi = new Outer.Inner();
oi.eat();
System.out.println(oi.i);
}
}
局部内部类:
例:
class Outer {
public void print() {
class Inner {
int i = 2;
public void eat() {}
}
Inner inner = new Inner();
inner.eat();
System.out.println(inner.i);
}
}
class Demo {
public static void main() {
Outer outer = new Outer();
outer.print();
}
} |
|