目录
1、静态成员内部类
public class Outer01 {
public static class Inner{
public static void run() {
System.out.println("喷跑吧兄弟");
}
}
}
public class InnerTest {
@Test
public void outer01() {
Outer01.Inner.run();
}
可以调用
2、非静态成员内部类
将上例中第二行去掉static
public class Outer02 {
public class Inner{
public static void run() {
System.out.println("喷跑吧兄弟");
}
}
}
public class InnerTest {
@Test
public void outer01() {
Outer01.Inner.run();
}
可以调用
3、实例化非静态成员内部类
public class Outer03 {
public class Inner{
public void run() {
System.out.println("喷跑吧兄弟");
}
}
}
不是静态方法,需要把类实例化成对象
@Test
public void outer03() {
new Outer03().new Inner().run();
}
可以调用
4、方法调用非静态成员内部类
调用需要通过对象去调用,想办法找到对象
在类中构建一个桥梁,外部类访问桥梁,桥梁去调用内部类
public class Outer04 {
public class Inner{
public void run() {
System.out.println("喷跑吧兄弟");
}
}
//内部类实例化
public void innerRun() {
new Inner().run();
}
}
@Test
public void outer04() {
new Outer04().innerRun();
}
可以调用
以上为成员内部类
以下是局部内部类
5、静态方法调用及局部内部类静态方法
public class Outer05 {
public static void innerRun() {
class Inner {
public static void run() {
System.out.println("喷跑吧兄弟");
}
}
Inner.run();
}
}
@Test
public void outer06() {
Outer06.innerRun();
}
可以调用
6、非静态方法及局部内部非静态方法
不是静态方法,需要实例化对象
public class Outer07 {
public void innerRun() {
class Inner {
public void run() {
System.out.println("喷跑吧兄弟");
}
}
new Inner().run();
}
}
@Test
public void outer07() {
new Outer07().innerRun();
}