As a member of an external class, an internal class can access private members or properties of the external class. (even if the outer class is declared private, it is visible to the inner class that is inside.)
Use inner class to define properties that are not accessible in outer class. In this way, the access rights in the external class are smaller than that in the private of the external class. Note: inner class is a compile time concept. Once compiled successfully, it will become two completely different classes. For an external class named outer and an internal class named inner defined within it. After the compilation, there are two types: outer. Class and outer $inner. Class.
A member internal class cannot define static members, only object members.