本文主要对 “静态内部类” 与 “外部类” 之间的相互调用 进行适当的实例+测试
一,代码
package com.wqb.staticclass;
public class TestMain {
public static void main(String[] args) {
OutsideClass.InsideClass.staticMethod("OutsideClass.InsideClass.staticMethod(methodName)");
new OutsideClass().outsideMethod("【一般类的非静态方法】 调用");
new OutsideClass.InsideClass();
new OutsideClass.InsideClass().insideMethod("【一般类的静态方法】 调用");
new TestMain().test();
}
public void test(){
OutsideClass.InsideClass.staticMethod(new String("test()"));
new OutsideClass.InsideClass().insideMethod("【一般类的一般方法】 调用");
}
}
class OutsideClass{
static class InsideClass{
// 静态内部类的构造方法
public InsideClass(){
System.out.println("静态内部类的【构造函数】");
}
public static void staticMethod(String methodName){
System.out.println(methodName + "调用静态内部类 的 静态方法。——————可行!!!");
new OutsideClass().outsideMethod("【静态内部类 的 静态方法】 调用");
new OutsideClass.InsideClass().insideMethod("【静态内部类 的 静态方法】 调用");
}
public void insideMethod(String who){
System.out.println(who + "静态内部类 中,非静态方法。——————可行!!!");
}
}
public void outsideMethod(String who){
System.out.println(who + "外部类 的 非静态方法。——————可行!!!");
}
}
二、运行结果
1 OutsideClass.InsideClass.staticMethod(methodName)调用静态内部类 的 静态方法。——————可行!!! 2 【静态内部类 的 静态方法】 调用外部类 的 非静态方法。——————可行!!! 3 静态内部类的【构造函数】 4 【静态内部类 的 静态方法】 调用静态内部类 中,非静态方法。——————可行!!! 5 【一般类的静态方法】 调用外部类 的 非静态方法。——————可行!!! 6 静态内部类的【构造函数】 7 静态内部类的【构造函数】 8 【一般类的静态方法】 调用静态内部类 中,非静态方法。——————可行!!! 9 test()调用静态内部类 的 静态方法。——————可行!!! 10 【静态内部类 的 静态方法】 调用外部类 的 非静态方法。——————可行!!! 11 静态内部类的【构造函数】 12 【静态内部类 的 静态方法】 调用静态内部类 中,非静态方法。——————可行!!! 13 静态内部类的【构造函数】 14 【一般类的一般方法】 调用静态内部类 中,非静态方法。——————可行!!!