zoukankan      html  css  js  c++  java
  • Java面向对象之内部类(访问格式)

    一、基础概念

      1.内部类是定义在类中的类。A类需要直接访问B类中的成员时,可以将A类定义到B类中,作为B类的内部类存在。

      2.内部类可以相当于外部类中的一个成员,可以被成员修饰符所修饰。(如:public private static)

      3.静态内部类可以相当于一个外部类进行使用。

      4.非静态的内部类只允许定义静态的常量,不能定义其他静态成员。

      5.访问规则:
        内部类可以直接访问外部类中的成员,因为内部类持有了外部类的引用。外部类名.this
        外部类要访问内部类需要创建内部类的对象。

    二、实例代码

     1 //外部类Outer
     2 class Outer
     3 {
     4     private static int num = 4;
     5     
     6     //内部类Inner_1
     7     class Inner_1
     8     {
     9         
    10         void show1()
    11         {
    12             System.out.println("内部类Inner_1 ,show1  "+num);//内部类Inner_1可以直接访问外部类Outer中的成员num
    13         }
    14     }
    15     
    16     //外部类中的方法Method访问内部类Inner_1中的方法show1
    17     public void Method()
    18     {
    19         Inner_1 in = new Inner_1();
    20         in.show1();
    21     }
    22     
    23     //静态内部类Inner_2
    24     static class Inner_2
    25     {
    26         void show2()
    27         {
    28             System.out.println("内部静态类Inner_2 ,show2  "+num);
    29         }
    30         static void show3()
    31         {
    32             System.out.println("内部静态类Inner_2 ,show3  "+num);
    33         }
    34     }
    35     
    36     class Inner_4
    37     {
    38         static final int count = 5;    //内部类中定义静态的常量
    39         void show4()
    40         {
    41             System.out.println("内部类Inner_4 ,show4  "+count);
    42         }
    43     }
    44 }
    45 
    46 class InnerClassDemo 
    47 {
    48     public static void main(String[] args) 
    49     {
    50         //创建外部类对象,访问内部类。
    51         Outer out = new Outer();
    52         out.Method();
    53         
    54         //创建非静态的内部类对象,可以通过创建外部类对象,被外部其他程序访问。
    55         Outer.Inner_1 i1 = new Outer().new Inner_1();
    56         i1.show1();
    57         
    58         //创建静态内部类对象,并访问非静态成员。
    59         Outer.Inner_2 i2 = new Outer.Inner_2();
    60         i2.show2();
    61         
    62         //创建静态内部类对象,并访问静态成员。
    63         Outer.Inner_2.show3();
    64         Outer.Inner_2 i4 = new Outer.Inner_2();
    65         i4.show3();
    66         
    67         //创建非静态的内部类对象,并访问静态变量。
    68         Outer.Inner_4 i5 = new Outer().new Inner_4();
    69         i5.show4();
    70     }
    71 }
    三、代码运行

      

  • 相关阅读:
    485串口接线
    mvc3 升级mvc5
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6 读写西门子PLC
    可用的 .net core 支持 RSA 私钥加密工具类
    解决 Win7 远程桌面 已停止工作的问题
    解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题
    解决安装 .net framework 发生 extracting files error 问题
    CentOS7 安装配置笔记
    通过特殊处理 Resize 事件解决 WinForm 加载时闪烁问题的一个方法
  • 原文地址:https://www.cnblogs.com/zhuxr/p/8991665.html
Copyright © 2011-2022 走看看