当前位置: 移动技术网 > IT编程>开发语言>Java > Java面向对象之内部类(访问格式)

Java面向对象之内部类(访问格式)

2018年05月05日  | 移动技术网IT编程  | 我要评论

一、基础概念

  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 }
三、代码运行

  

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网