|
@@ -0,0 +1,85 @@
|
|
|
+package com.lc.day12.test;
|
|
|
+
|
|
|
+/**
|
|
|
+ * ClassName: TestInner
|
|
|
+ *
|
|
|
+ * @Author 爱扣钉-陈晨
|
|
|
+ * @Create 2023/11/7 11:21
|
|
|
+ * @Version 1.0
|
|
|
+ */
|
|
|
+public class TestInner {
|
|
|
+ public static void main(String[] args) {
|
|
|
+ Outer.InnerClass innerClass = new Outer().new InnerClass();
|
|
|
+ innerClass.inMethod();
|
|
|
+
|
|
|
+ Outer.InnerClass.inStaticMethod();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+class Outer {
|
|
|
+ private static String a = "外静态a";
|
|
|
+ private String b = "内非静态b";
|
|
|
+
|
|
|
+ static class InnerStaticClass{
|
|
|
+ private static String a = "内静态a";
|
|
|
+ private String c = "内非静态c";
|
|
|
+
|
|
|
+ private static void inStaticMethod(){
|
|
|
+ System.out.println("inStaticMethod");
|
|
|
+ System.out.println("Outer.a = " + Outer.a);
|
|
|
+ System.out.println("Inner.a = " + a);
|
|
|
+
|
|
|
+ }
|
|
|
+ private void inMethod(){
|
|
|
+ System.out.println("inMethod");
|
|
|
+ System.out.println("Outer.a = " + Outer.a);
|
|
|
+ //System.out.println("Outer.c = " + Outer.c);//不能访问外部非静态
|
|
|
+ //System.out.println("Outer.c = " + Outer.this.c);//不能访问外部非静态
|
|
|
+ System.out.println("Inner.a = " + a);
|
|
|
+ System.out.println("Inner.a = " + c);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ class InnerClass{
|
|
|
+ private static String a = "内静态a";
|
|
|
+ private String c = "内非静态c";
|
|
|
+
|
|
|
+ public static void inStaticMethod(){
|
|
|
+ System.out.println("inStaticMethod");
|
|
|
+ System.out.println("Outer.a = " + Outer.a);
|
|
|
+ System.out.println("Inner.a = " + a);
|
|
|
+ }
|
|
|
+ public void inMethod(){
|
|
|
+ System.out.println("inMethod");
|
|
|
+ System.out.println("Outer.a = " + Outer.a);
|
|
|
+ System.out.println("Outer.c = " + Outer.this.b);
|
|
|
+ System.out.println("Inner.a = " + a);
|
|
|
+ System.out.println("Inner.a = " + c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ abstract class InnerClassAbs{
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ final class InnerClassFinal{
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void outStaticMethod(){
|
|
|
+ System.out.println("outStaticMethod");
|
|
|
+ System.out.println("InnerStaticClass.a"+InnerStaticClass.a);
|
|
|
+ System.out.println("InnerClass.a"+InnerClass.a);
|
|
|
+ }
|
|
|
+ private void outMethod(){
|
|
|
+ System.out.println("outMethod");
|
|
|
+ System.out.println("InnerStaticClass.a"+InnerStaticClass.a);
|
|
|
+ System.out.println("InnerClass.a"+InnerClass.a);
|
|
|
+ }
|
|
|
+
|
|
|
+ public InnerClass getNoStaticInner(){
|
|
|
+ return new InnerClass();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|