Home  >  Article  >  Java  >  Introduction to the access format and rules of java internal classes (with code)

Introduction to the access format and rules of java internal classes (with code)

不言
不言forward
2018-10-15 15:17:462798browse

This article brings you an introduction to the access format and rules of Java internal classes (with code). It has certain reference value. Friends in need can refer to it. I hope It will help you.

1. Definition of internal classes

Define a class to describe things, but there may be other things in this thing. In this case, define it in the class class to describe.

2. Internal class access rules

Inner classes can directly access members in external classes, including private .

The reason why you can directly access members of the external class is because the internal class holds a reference to the external class

Format: external class name.this

② To access an inner class, an outer class must create an inner class object.

3. Access format

①When the inner class is defined as a member of the outer class and is not private, it can be in other outer classes middle. Inner class objects can be created directly.

External class name.Inner class name Variable name = external class object.Inner class object;

Outer.Inner in = new Outer().new Inner();

②When the inner class is in a member position, it can be modified by member modifiers.

For example, private: encapsulate the inner class in the outer class.

static: The inner class has the characteristics of static.

When the inner class is modified by static, it can only directly access the static members in the outer class. There are access limitations. In other external classes, how to directly access the non-static members of the static inner class?

new Outer.Inner().function;   //非静态成员需要实例化才能调用方法。

In other external classes, how to directly access the static members of the static inner class?

Outer.Inner.function();          //静态的先加载入内存,直接类名调用就行了。

But note that when static members are defined in an inner class, the inner class must be static.

When a static method in an outer class accesses an inner class, the inner class must also be static. It is the same as accessing static variables.

class Outer // 所谓的外部类
{
    private int x = 2;// 外部类的成员变量,私有修饰

    class Inner // 内部类
    {
        void function() {
            System.out.print("inner:" + Outer.this.x);
        }
    }
}
class func {
    public static void main(String[] args) {
        Outer out = new Outer();
        // 直接访问内部类成员
        Outer.Inner in = new Outer().new Inner();
        in.function();
    }
}

The above is the detailed content of Introduction to the access format and rules of java internal classes (with code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete