Java内部类调用外部类方法的实现

1. 问题描述

在Java中,内部类是一个定义在外部类内部的类。内部类可以访问外部类的实例变量和方法。那么如何在内部类中调用外部类的方法呢?本文将以一个经验丰富的开发者的角度,教会一位刚入行的小白如何实现这个功能。

2. 整体流程

下面是实现Java内部类调用外部类方法的整体流程,我们可以用一个表格来展示:

步骤 描述
1 创建外部类
2 在外部类中定义一个方法
3 在外部类中定义一个内部类
4 在内部类中实例化外部类
5 在内部类中调用外部类的方法

接下来,我们将逐步详细介绍每个步骤需要做什么。

3. 实现步骤

步骤 1:创建外部类

首先,我们需要创建一个外部类,可以命名为OuterClass。外部类是一个普通的Java类,可以有自己的实例变量和方法。

public class OuterClass {
    // 外部类的实例变量
    private int outerVariable;

    // 外部类的方法
    public void outerMethod() {
        System.out.println("外部类方法被调用");
    }
}

在上面的代码中,我们创建了一个OuterClass类,并定义了一个实例变量outerVariable和一个方法outerMethod()。这些将在后续步骤中使用。

步骤 2:在外部类中定义一个方法

接下来,我们在外部类中定义一个公有方法,以便内部类可以调用它。

public class OuterClass {
    // ...

    // 外部类的方法
    public void outerMethod() {
        System.out.println("外部类方法被调用");
    }

    // 公有方法,供内部类调用
    public void publicMethod() {
        System.out.println("公有方法被调用");
    }
}

在上面的代码中,我们添加了一个名为publicMethod()的公有方法,供内部类调用。

步骤 3:在外部类中定义一个内部类

现在,我们需要在外部类中定义一个内部类。内部类是定义在外部类内部的类,可以访问外部类的变量和方法。

public class OuterClass {
    // ...

    // 内部类
    public class InnerClass {
        public void innerMethod() {
            System.out.println("内部类方法被调用");
        }
    }
}

在上面的代码中,我们创建了一个名为InnerClass的内部类,并在内部类中定义了一个方法innerMethod()

步骤 4:在内部类中实例化外部类

接下来,我们需要在内部类中实例化外部类的对象。

public class OuterClass {
    // ...

    // 内部类
    public class InnerClass {
        public void innerMethod() {
            System.out.println("内部类方法被调用");
            
            // 实例化外部类对象
            OuterClass outer = new OuterClass();
        }
    }
}

在上面的代码中,我们在内部类的方法innerMethod()中实例化了外部类的对象outer

步骤 5:在内部类中调用外部类的方法

最后,我们可以在内部类中调用外部类的方法。

public class OuterClass {
    // ...

    // 内部类
    public class InnerClass {
        public void innerMethod() {
            System.out.println("内部类方法被调用");
            
            // 实例化外部类对象
            OuterClass outer = new OuterClass();
            
            // 调用外部类的方法
            outer.outerMethod();
            outer.publicMethod();
        }
    }
}

在上面的代码中,我们在内部类的方法innerMethod()中调用了外部类的方法outerMethod()publicMethod()

至此,我们完成了Java内部类调用外部类方法的实现。