Java object oriented inner class (access format)

Keywords: Java

1, Basic concepts

1. An inner class is A class defined in A class. When class A needs to directly access the members of class B, class A can be defined into class B as an internal class of class B.

2. An inner class can be equivalent to a member of an outer class and can be modified by member modifiers. (such as public private static)

3. Static inner class can be used as an outer class.

4. Non static internal classes can only define static constants, not other static members.

5. Access rules:
Internal classes can directly access members in external classes, because internal classes hold references to external classes. External class name.this
External classes to access internal classes need to create objects of internal classes.

2, Instance code

 1 //External class Outer
 2 class Outer
 3 {
 4     private static int num = 4;
 5     
 6     //Inner class Inner_1
 7     class Inner_1
 8     {
 9         
10         void show1()
11         {
12             System.out.println("Inner class Inner_1 ,show1  "+num);//Inner class Inner_1 Direct access to external classes Outer Members of num
13         }
14     }
15     
16     //Methods in external classes Method Access inner class Inner_1 Method in show1
17     public void Method()
18     {
19         Inner_1 in = new Inner_1();
20         in.show1();
21     }
22     
23     //Static inner class Inner_2
24     static class Inner_2
25     {
26         void show2()
27         {
28             System.out.println("Internal static class Inner_2 ,show2  "+num);
29         }
30         static void show3()
31         {
32             System.out.println("Internal static class Inner_2 ,show3  "+num);
33         }
34     }
35     
36     class Inner_4
37     {
38         static final int count = 5;    //Defining static constants in Inner Classes
39         void show4()
40         {
41             System.out.println("Inner class Inner_4 ,show4  "+count);
42         }
43     }
44 }
45 
46 class InnerClassDemo 
47 {
48     public static void main(String[] args) 
49     {
50         //Create external class objects to access internal classes.
51         Outer out = new Outer();
52         out.Method();
53         
54         //Creating non static internal class objects can be accessed by other external programs by creating external class objects.
55         Outer.Inner_1 i1 = new Outer().new Inner_1();
56         i1.show1();
57         
58         //Create static inner class objects and access non static members.
59         Outer.Inner_2 i2 = new Outer.Inner_2();
60         i2.show2();
61         
62         //Create static inner class objects and access static members.
63         Outer.Inner_2.show3();
64         Outer.Inner_2 i4 = new Outer.Inner_2();
65         i4.show3();
66         
67         //Create non static inner class objects and access static variables.
68         Outer.Inner_4 i5 = new Outer().new Inner_4();
69         i5.show4();
70     }
71 }
3, Code run

  

Posted by whizzykid on Sat, 21 Mar 2020 08:52:42 -0700