首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

来自内部类的Java方法调用与外部类的输出不同

是因为内部类具有访问外部类成员的特殊能力。在Java中,内部类是定义在另一个类内部的类。它可以访问外部类的成员变量和方法,包括私有成员,而外部类不能直接访问内部类的成员。

内部类可以分为静态内部类和非静态内部类。静态内部类与外部类的关系更加独立,可以直接通过外部类名访问,而非静态内部类需要通过外部类的实例来访问。

当内部类的方法被调用时,它可以访问外部类的成员变量和方法,包括私有成员。这是因为内部类持有一个对外部类对象的引用,可以通过该引用访问外部类的成员。

下面是一个示例代码:

代码语言:java
复制
public class OuterClass {
    private int outerVariable = 10;

    public void outerMethod() {
        InnerClass inner = new InnerClass();
        inner.innerMethod();
    }

    public class InnerClass {
        public void innerMethod() {
            System.out.println("内部类方法调用:outerVariable = " + outerVariable);
        }
    }
}

public class Main {
    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        outer.outerMethod();
    }
}

输出结果为:

代码语言:txt
复制
内部类方法调用:outerVariable = 10

在这个例子中,内部类InnerClass可以访问外部类OuterClass的私有成员变量outerVariable,并将其输出。

对于这个问题,腾讯云提供了一系列与Java开发相关的产品和服务,如云服务器、云数据库、云存储等。具体推荐的产品和产品介绍链接地址可以根据具体需求和场景来选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 一篇文章教会你使用Java内部类、成员内部类、静态内部类和方法内部类

    前面几篇文章用Java带大家一起了解了几个游戏小项目,感兴趣的小伙伴可以点击文章观摩下,手把手教你用Java打造一款简单故事书(上篇)、手把手教你用Java打造一款简单故事书(下篇)、手把手教你用Java打造一款简单考试系统(上篇)、手把手教你用Java打造一款简单考试系统(下篇)、手把手带你用Java打造一款对对碰游戏(上篇)、手把手带你用Java打造一款对对碰游戏(下篇)、手把手带你用Java实现点灯游戏(上篇)、手把手带你用Java实现点灯游戏(下篇),接下来的几篇文章是关于Java基础的,希望对大家的学习有帮助,欢迎大家在讨论区留言。

    03

    Android(Java) | 你真的熟悉Java匿名内部类吗(Java匿名内部类的限制)

    如上代码, new Foo()在定义的时候, 重写了bar()这个方法, 如此一来new Foo(){...}这里就是一个匿名内部类了; 呐这个匿名内部类,实际上在字节码中是会定义出来的,!!! 定义出来一个用于定位的“名字”, 这个“名字”可见上面代码的第二行, “com.bennyhuo.iiv.ch1.”即代码包名, “OuterClass$1”即外部内名$1, 1代表这个匿名内部类, 是前缀的外部类中,定义的第一个匿名内部类, 再创建第二个匿名内部类 就是$2了; 所以匿名内部类跟普通类一样,是可以加载出来的!!! 只不过参数格式不一样, 普通类是“class 类名” 匿名内部类是“class 包名.外部类名$num”

    06
    领券