• 19.静态内部类【静态嵌套类】【20220701】


    静态内部类【静态嵌套类】

    静态内部类就是给成员内部类上添加static修饰符

    1. package com.wangxing.test1;
    2. public class Hello {
    3. public static class World{
    4. }
    5. }

    静态内部类可以出现构造方法,实例元素,静态元素

    1. package com.wangxing.test1;
    2. public class Hello {
    3. public static class World{
    4. public String worldshili="静态内部类中的实例变量";
    5. public static String worldstatic="静态内部类中的静态变量";
    6. public World(){}
    7. public void worldshiliMethod(){}
    8. public static void worldstaticMethod(){}
    9. }
    10. }

    静态内部类中访问静态内部类的元素

     1.在静态内部类的构造方法和实例方法中可以访问静态内部类中构造方法,实例元素,静态元素
        构造方法--new
        实例元素--对象/this,可以省略
        静态元素--对象/this/类名,可以省略
    2.在静态内部类的静态方法中可以访问静态内部类中构造方法,实例元素,静态元素
        构造方法--new
        实例元素--对象
        静态元素--对象/类名,可以省略
        不能使用this

    1. package com.wangxing.test1;
    2. public class Hello1 {
    3. public static class World1{
    4. public String worldshili="静态内部类中的实例变量";
    5. public static String worldstatic="静态内部类中的静态变量";
    6. public World1(){}
    7. public World1(String name){
    8. World1 w11=new World1();
    9. System.out.println(w11.worldshili);
    10. System.out.println(this.worldshili);
    11. System.out.println(worldshili);
    12. w11.worldshiliMethod1();
    13. this.worldshiliMethod1();
    14. worldshiliMethod1();
    15. System.out.println(w11.worldstatic);
    16. System.out.println(this.worldstatic);
    17. System.out.println(World1.worldstatic);
    18. System.out.println(worldstatic);
    19. w11.worldstaticMethod1();
    20. this.worldstaticMethod1();
    21. World1.worldstaticMethod1();
    22. worldstaticMethod1();
    23. }
    24. public void worldshiliMethod1(){}
    25. public void worldshiliMethod2(){
    26. World1 w11=new World1();
    27. System.out.println(w11.worldshili);
    28. System.out.println(this.worldshili);
    29. System.out.println(worldshili);
    30. w11.worldshiliMethod1();
    31. this.worldshiliMethod1();
    32. worldshiliMethod1();
    33. System.out.println(w11.worldstatic);
    34. System.out.println(this.worldstatic);
    35. System.out.println(World1.worldstatic);
    36. System.out.println(worldstatic);
    37. w11.worldstaticMethod1();
    38. this.worldstaticMethod1();
    39. World1.worldstaticMethod1();
    40. worldstaticMethod1();
    41. }
    42. public static void worldstaticMethod1(){}
    43. public static void worldstaticMethod2(){
    44. World1 w11=new World1();
    45. System.out.println(w11.worldshili);
    46. //System.out.println(this.worldshili);
    47. //System.out.println(worldshili);
    48. w11.worldshiliMethod1();
    49. //this.worldshiliMethod1();
    50. //worldshiliMethod1();
    51. System.out.println(w11.worldstatic);
    52. //System.out.println(this.worldstatic);
    53. System.out.println(World1.worldstatic);
    54. System.out.println(worldstatic);
    55. w11.worldstaticMethod1();
    56. //this.worldstaticMethod1();
    57. World1.worldstaticMethod1();
    58. worldstaticMethod1();
    59. }
    60. }
    61. }

    静态内部类中访问外部类的元素

    构造方法---new 
    实例元素---只能对象,不能省略
    静态元素---对象/类名,可以省略

    1. package com.wangxing.test1;
    2. public class Hello2 {
    3. public String helloshili="外部类中的实例变量";
    4. public static String hellostatic="外部类中的静态变量";
    5. public Hello2(){}
    6. public void helloshiliMethod1(){}
    7. public static void hellostaticMethod1(){}
    8. public static class World2{
    9. public World2(){
    10. Hello2 h2=new Hello2();
    11. System.out.println(h2.helloshili);
    12. //System.out.println(Hello2.this.helloshili);
    13. //System.out.println(helloshili);
    14. h2.helloshiliMethod1();
    15. //Hello2.this.helloshiliMethod1();
    16. //helloshiliMethod1();
    17. System.out.println(h2.hellostatic);
    18. //System.out.println(Hello2.this.hellostatic);
    19. System.out.println(Hello2.hellostatic);
    20. System.out.println(hellostatic);
    21. h2.hellostaticMethod1();
    22. //Hello2.this.hellostaticMethod1();
    23. Hello2.hellostaticMethod1();
    24. hellostaticMethod1();
    25. }
    26. public void worldshiliMethod1(){
    27. Hello2 h2=new Hello2();
    28. System.out.println(h2.helloshili);
    29. //System.out.println(Hello2.this.helloshili);
    30. //System.out.println(helloshili);
    31. h2.helloshiliMethod1();
    32. //Hello2.this.helloshiliMethod1();
    33. //helloshiliMethod1();
    34. System.out.println(h2.hellostatic);
    35. //System.out.println(Hello2.this.hellostatic);
    36. System.out.println(Hello2.hellostatic);
    37. System.out.println(hellostatic);
    38. h2.hellostaticMethod1();
    39. //Hello2.this.hellostaticMethod1();
    40. Hello2.hellostaticMethod1();
    41. hellostaticMethod1();
    42. }
    43. public static void worldstaticMethod1(){
    44. Hello2 h2=new Hello2();
    45. System.out.println(h2.helloshili);
    46. //System.out.println(Hello2.this.helloshili);
    47. //System.out.println(helloshili);
    48. h2.helloshiliMethod1();
    49. //Hello2.this.helloshiliMethod1();
    50. //helloshiliMethod1();
    51. System.out.println(h2.hellostatic);
    52. //System.out.println(Hello2.this.hellostatic);
    53. System.out.println(Hello2.hellostatic);
    54. System.out.println(hellostatic);
    55. h2.hellostaticMethod1();
    56. //Hello2.this.hellostaticMethod1();
    57. Hello2.hellostaticMethod1();
    58. hellostaticMethod1();
    59. }
    60. }
    61. }

    外部类中访问静态内部类中的元素

    构造方法--new
    实例元素--对象,不可以省略
    静态元素--对象/类名,不可以省略

    1. package com.wangxing.test1;
    2. public class Hello3 {
    3. public Hello3(){
    4. World3 w33=new World3();
    5. System.out.println(w33.worldshili);
    6. w33.worldshiliMethod1();
    7. System.out.println(w33.worldstatic);
    8. System.out.println(World3.worldstatic);
    9. w33.worldstaticMethod1();
    10. World3.worldstaticMethod1();
    11. }
    12. public void helloshiliMethod1(){
    13. World3 w33=new World3();
    14. System.out.println(w33.worldshili);
    15. w33.worldshiliMethod1();
    16. System.out.println(w33.worldstatic);
    17. System.out.println(World3.worldstatic);
    18. w33.worldstaticMethod1();
    19. World3.worldstaticMethod1();
    20. }
    21. public static void hellostaticMethod1(){
    22. World3 w33=new World3();
    23. System.out.println(w33.worldshili);
    24. w33.worldshiliMethod1();
    25. System.out.println(w33.worldstatic);
    26. System.out.println(World3.worldstatic);
    27. w33.worldstaticMethod1();
    28. World3.worldstaticMethod1();
    29. }
    30. public static class World3{
    31. public String worldshili="静态内部类中的实例变量";
    32. public static String worldstatic="静态内部类中的静态变量";
    33. public World3(){}
    34. public void worldshiliMethod1(){}
    35. public static void worldstaticMethod1(){}
    36. }
    37. }

    其他类访问静态内部类中的元素

    1.没有导入静态内部类程序包的时候
            构造方法--外部类类名.静态内部类类名 对象=new  外部类类名.静态内部类类名();
            实例元素--只能对象
            静态元素--对象/外部类类名.静态内部类类名
    2.有导入静态内部类程序包的时候
            //import com.wangxing.test1.Hello.World;
            构造方法--静态内部类类名 对象=new  外部类类名.静态内部类类名();
            实例元素--只能对象
            静态元素--对象/外部类类名.静态内部类类名 

    1. package com.wangxing.test1;
    2. public class Hello {
    3. public static class World{
    4. public String worldshili="静态内部类中的实例变量";
    5. public static String worldstatic="静态内部类中的静态变量";
    6. public World(){}
    7. public void worldshiliMethod(){}
    8. public static void worldstaticMethod(){}
    9. }
    10. }
    11. package com.wangxing.test1;
    12. import com.wangxing.test1.Hello.World;
    13. public class Other {
    14. public Other(){
    15. Hello.World w=new Hello.World();
    16. System.out.println(w.worldshili);
    17. w.worldshiliMethod();
    18. System.out.println(w.worldstatic);
    19. System.out.println(Hello.World.worldstatic);
    20. w.worldstaticMethod();
    21. Hello.World.worldstaticMethod();
    22. }
    23. public void otherShili(){
    24. //import com.wangxing.test1.Hello.World;
    25. Hello.World w=new Hello.World();
    26. //World w=new Hello.World();
    27. System.out.println(w.worldshili);
    28. w.worldshiliMethod();
    29. System.out.println(w.worldstatic);
    30. System.out.println(Hello.World.worldstatic);
    31. w.worldstaticMethod();
    32. Hello.World.worldstaticMethod();
    33. }
    34. public static void otherStatic(){
    35. //import com.wangxing.test1.Hello.World;
    36. //Hello.World w=new Hello.World();
    37. World w=new Hello.World();
    38. System.out.println(w.worldshili);
    39. w.worldshiliMethod();
    40. System.out.println(w.worldstatic);
    41. System.out.println(Hello.World.worldstatic);
    42. w.worldstaticMethod();
    43. Hello.World.worldstaticMethod();
    44. }
    45. }

     

  • 相关阅读:
    Java获取数组最大值、Java8的Arrays.sort()原理
    自己使用过的Python(Win64位)各版本及相关工具百度网盘下载链接汇总
    前端入门到入土?
    Dubbo(一):Dubbo 3.0
    【STM32】入门(三):按键使用-GPIO端口输出控制
    生信软件26 - BWA-MEM比对算法性能好的bwa-mem2
    Squid代理服务器应用
    Ubuntu--解决系统时间不正确的问题
    Java SE 9 多版本兼容 JAR 包示例
    管网水位监测仪:井下水位监测的创新者
  • 原文地址:https://blog.csdn.net/guizhaiteng/article/details/125563454