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

内部类无法访问从内部调用构造函数的方法初始化的外部类成员变量

是因为内部类的实例化过程与外部类的实例化过程是相互独立的。当内部类实例化时,它并不知道外部类的实例化状态,因此无法直接访问外部类的成员变量。

内部类是定义在另一个类内部的类,它可以访问外部类的成员变量和方法,包括私有成员。但是,如果外部类的成员变量是通过内部调用构造函数的方法初始化的,内部类就无法直接访问这些成员变量。

为了解决这个问题,可以在内部类中定义一个方法,通过调用外部类的方法来间接访问外部类的成员变量。例如:

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

    public OuterClass() {
        initOuterVariable();
    }

    private void initOuterVariable() {
        outerVariable = 10;
    }

    public class InnerClass {
        public void accessOuterVariable() {
            System.out.println(outerVariable); // 通过外部类的方法间接访问外部类的成员变量
        }
    }
}

在上面的例子中,内部类InnerClass通过调用外部类OuterClass的方法initOuterVariable()来初始化外部类的成员变量outerVariable,然后通过accessOuterVariable()方法间接访问外部类的成员变量。

需要注意的是,内部类可以访问外部类的成员变量和方法,但外部类不能直接访问内部类的成员变量和方法。如果需要在外部类中访问内部类的成员变量和方法,可以通过创建内部类的实例来实现。

对于云计算领域的相关知识,以下是一些常见名词的概念、分类、优势、应用场景以及腾讯云相关产品的介绍链接:

  1. 云计算(Cloud Computing):云计算是一种通过网络提供计算资源和服务的模式,包括计算能力、存储空间和应用程序等。它可以提供灵活、可扩展和经济高效的解决方案。腾讯云产品:云服务器(https://cloud.tencent.com/product/cvm
  2. 前端开发(Front-end Development):前端开发是指开发网站或应用程序的用户界面部分,包括HTML、CSS和JavaScript等技术。它负责用户与系统之间的交互。腾讯云产品:云开发(https://cloud.tencent.com/product/tcb
  3. 后端开发(Back-end Development):后端开发是指开发网站或应用程序的服务器端部分,负责处理数据和逻辑。常用的后端开发语言包括Java、Python和Node.js等。腾讯云产品:云函数(https://cloud.tencent.com/product/scf
  4. 软件测试(Software Testing):软件测试是指对软件进行验证和验证,以确保其符合预期的功能和质量要求。它包括单元测试、集成测试、系统测试和性能测试等。腾讯云产品:云测试(https://cloud.tencent.com/product/cts
  5. 数据库(Database):数据库是用于存储和管理数据的系统。常见的数据库类型包括关系型数据库(如MySQL)和NoSQL数据库(如MongoDB)。腾讯云产品:云数据库MySQL版(https://cloud.tencent.com/product/cdb
  6. 服务器运维(Server Operation and Maintenance):服务器运维是指管理和维护服务器的活动,包括安装、配置、监控和故障排除等。腾讯云产品:云服务器(https://cloud.tencent.com/product/cvm
  7. 云原生(Cloud Native):云原生是一种构建和运行在云环境中的应用程序的方法论,它倡导使用容器、微服务和自动化等技术来提高应用程序的可伸缩性和可靠性。腾讯云产品:容器服务(https://cloud.tencent.com/product/tke
  8. 网络通信(Network Communication):网络通信是指在计算机网络中传输数据和信息的过程。它涉及协议、路由、安全和性能等方面。腾讯云产品:私有网络(https://cloud.tencent.com/product/vpc
  9. 网络安全(Network Security):网络安全是保护计算机网络和系统免受未经授权访问、损坏或攻击的过程。它包括防火墙、入侵检测和加密等技术。腾讯云产品:云安全中心(https://cloud.tencent.com/product/ssc
  10. 音视频(Audio and Video):音视频是指音频和视频的传输和处理。它涉及编解码、流媒体和实时通信等技术。腾讯云产品:云直播(https://cloud.tencent.com/product/lvb
  11. 多媒体处理(Multimedia Processing):多媒体处理是指对音频、视频和图像等多媒体数据进行编辑、转码和处理的过程。腾讯云产品:云点播(https://cloud.tencent.com/product/vod
  12. 人工智能(Artificial Intelligence):人工智能是指使计算机具备类似人类智能的能力,包括机器学习、自然语言处理和计算机视觉等技术。腾讯云产品:腾讯云AI(https://cloud.tencent.com/product/ai
  13. 物联网(Internet of Things):物联网是指通过互联网连接和交互的物理设备和传感器网络。它可以实现设备之间的通信和数据交换。腾讯云产品:物联网开发平台(https://cloud.tencent.com/product/iotexplorer
  14. 移动开发(Mobile Development):移动开发是指开发运行在移动设备上的应用程序,包括手机和平板电脑等。常见的移动开发平台包括Android和iOS。腾讯云产品:移动推送(https://cloud.tencent.com/product/umeng_push
  15. 存储(Storage):存储是指保存和检索数据的过程。云存储是一种将数据存储在云服务器上的方法,可以提供高可靠性和可扩展性。腾讯云产品:对象存储(https://cloud.tencent.com/product/cos
  16. 区块链(Blockchain):区块链是一种分布式账本技术,可以实现去中心化的数据存储和交易验证。它具有不可篡改、透明和可追溯等特点。腾讯云产品:区块链服务(https://cloud.tencent.com/product/bcs
  17. 元宇宙(Metaverse):元宇宙是指虚拟现实和增强现实等技术构建的虚拟世界,用户可以在其中进行交互和体验。腾讯云产品:腾讯云元宇宙(https://cloud.tencent.com/product/mu

以上是对内部类无法访问从内部调用构造函数的方法初始化的外部类成员变量的解释,以及云计算领域相关知识的概念、分类、优势、应用场景和腾讯云产品的介绍。

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

相关·内容

在Java内部类中使用外部类成员方法以及成员变量

如在成员变量或者成员方法前面,加上Private关键字,则其他类就无法调用这个类中成员方法或则和成员变量。但是,如果这个类有成员内部类,则不受这方面的限制。...只是不能够进行直接引用,而是要使用内部类对象引用方法才能够调用内部类成员变量。这一点程序开发人员需要切记。成员内部类与外部类相互访问彼此成员方法限制是不同。...由于在内部类中可以随意访问外部类成员方法成员变量。但是此时成员内部类与外部类变量名相同,那么如果要在内部类使用这个变量i,编译器怎么知道现在需要调用部类变量i,还是内部类变量i呢? ...此时如果在成员内部类调用这个变量,该如何进行区分呢?通常情况下,如果使用this.i 方式来调用变量,则表示这个变量成员内部类中定义变量。...以上总结中可以看出,成员内部类与外部类之间关系确实很复杂。作为一个Java程序开发人员,必须要了解内部类与外部类成员相互之间引用准则、内部类对象与外部类对象关系。

2.7K10

【Java基础】类成员总结(属性,方法构造器,代码块,内部类

先声明,后使用 1.3 变量都有其对应作用域 2.不同点: 2.1 在类中声明位置不同 属性:直接定义在类一对{} 局部变量:声明在方法方法形参、代码块构造器形参、构造内部变量...特别地:形参在调用时,我们赋值即可 2.4 在内存中加载位置: 属性:加载到堆空间中 (非static) 局部变量:加载到栈空间 2.方法 方法 = 成员方法 = 函数 = method...对对象属性等进行初始化 如果一个类中定义了多个非静态代码块,则按照声明先后顺序执行 非静态代码块可以调用静态属性、静态方法,或非静态属性、非静态 5.内部类 在Java中,可以将一个类定义在另一个类里面或者一个方法里边...言外之意,不使用final,就可以被继承 可以被abstract修饰,可以被static修饰 2.局部内部类 (1)局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类区别在于局部内部类访问仅限于方法或者该作用域...普通内部类作为外部类一个成员而存在,在普通内部类中可以直接访问外部类属性,调用部类方法

47030

java(4)-深入理解java嵌套类、内部类以及内部类builder构建构造函数六、使用 builder 模式解决构造方法参数过多情况

注意,外部类访问内部类成员有些特别,不能直接访问,但可以通过内部类来访问,这是因为静态嵌套所有成员方法默认为静态了。...内部类是外部类一个成员,因此内部类可以自由地访问外部类成员变量,无论是否是private。...3、另外,就是要注意,内部类Inner及InnterTwo只在类Outer作用域是可知,如果类Outer任何代码尝试初始化类Inner或使用它,编译就不会通过。...同时,内部类变量成员只在内部内部可见,若外部类或同层次内部类需要访问,需采用示例程序中方法,不可直接访问内部类变量。 四、方法内部类  顾名思义,把类放在方法。...但是该方法结束之后, 在方法创建内部类对象可能仍然存在于堆中!例如,如果对它引用被传递到其他某些代码,并存储在一个成员变量

1.5K10

C++类和对象(下)

0; } 输出结果如下: 得益于 static 修饰成员变量统计 注意: 静态成员函数 不可以调用 非静态成员变量,没有 this 指针 非静态成员函数 可以调用 静态成员变量,具有全局属性..._val << endl; } int main() { Test t; Print(t); } 程序正常编译,结果如下: 友元函数可以用来解决外部运算符重载函数无法访问类中成员问题,但还是不推荐这种方法...: int _a; } 内部类天生就是友元类 也就是说,B 天生就能访问 A 中成员 ️特性 内部类在C++中比较少用,属于了解型知识 内部类最大特性就是使得内部类能受到外类访问限定符限制...内部类特点: 独立存在 天生就是友元 用途: 可以利用内部类,将类隐藏,现实中比较少见 注意: 内部类跟其外类是独立存在,计算类大小时,是不包括内部类大小 内部类受访问限定符限定,假设为私有...,内部类无法被直接使用 内部类天生就算友元,即可以访问类中成员,而外类无法访问内部类 ---- 编译器优化 前面说过,编译器存在优化行为,这里就来深入探讨一下 把上面的代码搬下来用一下,方便观察发生了什么事情

13820

那些你不知道类和对象知识

,还有骨子里自信与淡定✨ 一、构造函数深入理解 1.1 初始化列表 前面,我们已经学习过构造函数,在创建对象时候,编译器会自动调用构造函数,用于给初始化对对象成员变量赋予初始值.那构造函数体内语句时初始化吗...在构造函数函数名参数后与{}中间区域是成员变量初始化地方. 初始化列表: 以一个冒号开始,接着是一个以逗号分隔数据成员列表,每个"成员变量"后面跟一个放在括号中初始值或表达式。...对于下列成员变量,只能使用初始化列表进行初始化,因为这些成员变量只能在定义时就给出初始化值: const成员变量 引用成员变量 没有默认构造函数自定义类型成员 正确写法: class Date {...在声明静态成员变量时,需要在类定义中进行,但不能在函数内部进行。在类定义中声明静态成员变量不会占用内存空间,只有在类定义时才会真正地分配内存。...如果在类定义中进行初始化,那么每个包含该类定义文件都会进行初始化,这违背了静态成员变量只应初始化一次原则。将初始化操作移到类,可以确保只有一次初始化

18020

C++ 程序员 Java 指南

当系统加载类或创建该类实例时,系统自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值。 局部变量定义后,必须经过显式初始化后才能使用,系统不会为局部变量执行初始化。...在构造器中可以使用 this(params) 来调用本类其它构造器,使用 super(params) 来调用父类构造器,只能书写在本构造器第一行,所以它们不能同时出现。...使用 super 调用父类中实例方法,使用父类类名调用父类中方法。 如果父类方法具有 private 访问权限,则该方法对其子类是隐藏,因此其子类无法访问和重写该方法。...内部类里引用外部类属性或者方法时,可以用命 OuterClass.this.。 非静态内部类里不能有静态成员内部类可以使用 static 修饰,外部类不行。...部类创建内部非静态类语法:OuterClass.InnerClass varName = OuterInstance.new InnerConstructor(); 部类创建内部静态类语法

41630

并发编程中逃离“996icu”——this引用逃逸

简单来说,就是在一个类构造器创建了一个内部类内部类本身是拥有对外部类所有成员访问权),此时外部类成员变量还没初始化完成。...但是,同时这个内部类被其他线程获取到,并且调用内部类可以访问到外部类还没来得及初始化成员变量方法。...} } } 只要线程得到持有内部类引用数组,就可以使用内部类获取外部类有可能未初始化成员变量。...也就是说,如果要在构造函数中创建内部类,那么就不能在构造函数中把他发布了,应该在构造函数发布,即等构造函数执行完初始化工作,再发布内部类。...根开始递归下去,因为多态性此时调用子类覆盖后draw()方法(要在调用RoundGlyph构造函数之前调用),由于步骤1缘故,我们此时会发现radius值为0; (3)按声明顺序调用成员初始化方法

1.3K20

C++ 程序员 Java 指南

构造器中可以使用 this(params) 来调用本类其它构造器,使用 super(params) 来调用父类构造器,只能书写在本构造器第一行,所以它们不能同时出现。...使用 super 调用父类中实例方法,使用父类类名调用父类中方法。 如果父类方法具有 private 访问权限,则该方法对其子类是隐藏,因此其子类无法访问和重写该方法。...内部类里引用外部类属性或者方法时,可以用命 OuterClass.this.。 非静态内部类里不能有静态成员内部类可以使用 static 修饰,外部类不行。...部类创建内部非静态类语法:OuterClass.InnerClass varName = OuterInstance.new InnerConstructor(); 部类创建内部静态类语法...纠误一处:《疯狂 Java 讲义》P214 讲道「如果匿名内部类需要访问外部类局部变量,则必须使用 final 修饰符来修饰外部类局部变量,否则系统将报错。

58810

C++打怪升级(六)- 类和对象入门3

其实,构造函数成员变量赋值操作并不能称之为对成员变量初始化,而是只能称之为对成员变量赋初值。...,如果一个成员变量被我们显式初始化列表中写了,那么编译器就不在初始化列表中生成该成员变量默认初始化了; 每一个类对象成员变量定义都发生在构造函数初始化列表中; 在调用构造函数时,先进行初始化列表中操作...细化类成员变量 定义初始化: 类成员变量 定义初始化 发生在初始化列表阶段 即类成员变量初始化列表进行 定义初始化 而在构造函数进行是类成员变量赋值和其他必要操作,故在构造函数进行不能称之为...,它不属于外部类,不能通过外部类对象去访问内部类成员 ---- 内部类天生是外部类友元类,内部类可以通过外部类对象参数来访问外部类所有成员,反之则不成立; 内部类定义在外部类public...、protected、private时,对内部类使用会受到访问限定符影响,这一点与内部类部类其他成员相同; public修饰时在类指定外部类类域即可使用内部类成员; private修饰时则在类不能使用内部类任何成员

56320

c++类和对象新手保姆级上手教学(下)

初始化列表: 在中篇中我们提到了构造函数功能是初始化变量,接下来讲到初始化列表也有同样功能。...用法: 初始化列表:以一个冒号开始,接着是一个以逗号分隔数据成员列表,每个"成员变量"后面跟一个放在括号中初始值或表达式 既然它功能和构造函数一样,那为什么要有初始化列表呢?...当然是为做到构造函数做不到事情,比如: 我们有一个const变量,那么就代表它在被定义时候就必须被初始化,如果我们用构造函数,就会报错,如下: 而初始化列表就可以很好地解决这个问题: 如果成员变量有引用...,也是只要定义就必须初始化时候,也只能用初始化列表完成; 必须用初始化列表三种情况: 1.const成员变量 2.引用 3.自定义变量(没有默认构造函数) 注意初始化列表初始化顺序是按声明顺序从上到下...友元函数: 如下图,我们在类定义函数无法访问类里面私有的成员变量: 但是我们就想让这个函数访问到,又不想让私有成员变成公有,可以采用友元声明: 友元类: 跟刚才友元函数差不多,在A类对B类声明友元

7110

C++之面向对象(下)

前言 本文继续介绍与C++中与面向对象相关内容,介绍了构造函数初始化列表、隐式类型转换、类静态成员、友元、内部类、匿名对象以及编译器对拷贝构造优化等概念。...---- 一、再谈构造函数 1.构造函数体赋值 在创建对象时,编译器通过调用构造函数给该对象中各个成员变量一个合适初值。...静态成员变量一定在类进行初始化,静态成员函数中没有this指针。 2.特性 静态类成员为所有类对象所共享,不在某个具体类对象中,而是存放在静态区。...,但不是类成员函数 友元函数不能用const修饰 因为友元函数没有this指针,它是一个函数,不过可以访问类成员。...总结 以上就是今天要讲内容,本文介绍了构造函数初始化列表、隐式类型转换、类静态成员、友元、内部类、匿名对象以及编译器对拷贝构造优化等相关概念。

37040

剖析【C++】——类和对象(下篇)——超详解——小白篇

1.再谈构造函数 1.1 构造函数体赋值 构造函数是用来初始化对象特殊函数。当我们创建一个对象时,编译器会自动调用构造函数来给对象成员变量赋值。...简单理解:当你买一个新手机,打开包装,这就像调用构造函数。手机里默认应用程序就像成员变量初始值。这些默认应用虽然是预装,但我们可以再安装新应用,这相当于构造函数体内赋值操作。...但是这个过程叫赋值,不叫初始化,因为我们可以在构造函数多次赋值。 总结:构造函数体内赋值可以多次进行,而初始化只能进行一次。...}; 在上面的代码中,: x(a), y(b) 就是初始化列表,它在构造函数体执行之前完成成员变量初始化。...初始化:静态成员变量必须在类进行初始化。 面试题:实现一个类,计算程序中创建了多少个类对象。

2910

夯实Java基础系列18:深入理解Java内部类及其实现原理

通过反编译内部类字节码,分析之后主要是通过以下几步做到: 1 编译器自动为内部类添加一个成员变量, 这个成员变量类型和外部类类型相同, 这个成员变量就是指向外部类对象引用; 2 编译器自动为内部类构造方法添加一个参数..., 参数类型是外部类类型, 在构造方法内部使用这个参数为1中添加成员变量赋值; 3 在调用内部类构造函数初始化内部类对象时, 会默认传入外部类引用。...简单来说,类加载都是发生在类要被用到时候。内部类也是一样 1 普通内部类在第一次用到时加载,并且每次实例化时都会执行内部成员变量初始化,以及代码块和构造方法。...可以看到,内部类其实拥有外部类一个引用,在构造函数中将外部类引用传递进来。 匿名内部类为什么只能访问局部final变量?...可以看到,java将编译时已经确定值直接复制,进行替换,将无法确定值放到了内部类常量池中,并在构造函数中将其常量池取出到字段中。

40810

夯实Java基础系列18:深入理解Java内部类及其实现原理

通过反编译内部类字节码,分析之后主要是通过以下几步做到:   1 编译器自动为内部类添加一个成员变量, 这个成员变量类型和外部类类型相同, 这个成员变量就是指向外部类对象引用;   2 编译器自动为内部类构造方法添加一个参数..., 参数类型是外部类类型, 在构造方法内部使用这个参数为1中添加成员变量赋值;   3 在调用内部类构造函数初始化内部类对象时, 会默认传入外部类引用。...简单来说,类加载都是发生在类要被用到时候。内部类也是一样 1 普通内部类在第一次用到时加载,并且每次实例化时都会执行内部成员变量初始化,以及代码块和构造方法。...总结一下Java类代码加载顺序,万变不离其宗。 规律一、初始化构造时,先父后子;只有在父类所有都构造完后子类才被初始化规律二、类加载先是静态、后非静态、最后是构造函数。...,进行替换,将无法确定值放到了内部类常量池中,并在构造函数中将其常量池取出到字段中。

1.2K10

类与对象下篇

类与对象下篇:: 1.再谈构造函数 构造函数体赋值: 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适初始值。...,对象中已经有了一个初始值,但是不能将其称为对象中成员变量初始化构造函数体中语句只能将其称为赋初始值,而不能称作初始化,因为初始化只能初始一次,而构造函数体内可以多次赋值。...(初始化只能初始化一次) 2.类中包含一次啊成员必须放在初始化列表中进行初始化:         a.引用成员变量         b.const成员变量         c.自定义类型成员(该类没有构造函数...2.内部类虽然定义在类里面,但完全是两个独立类,和定义在类外面没有区别,真正影响点是B类访问受A类域和访问限定符限制,内部类受访问限定符限制,如果一个内部类被设置成私有,那么main函数无法访问...n次构造函数 return Sum::GetRet(); } }; //方法二:内部类 //利用内部类两个性质: //1.内部类可以直接访问外部类静态成员 //2.内部类是外部类友元 class

41930

Java基础8:深入理解内部类

通过反编译内部类字节码,分析之后主要是通过以下几步做到:   1 编译器自动为内部类添加一个成员变量, 这个成员变量类型和外部类类型相同, 这个成员变量就是指向外部类对象引用;   2 编译器自动为内部类构造方法添加一个参数..., 参数类型是外部类类型, 在构造方法内部使用这个参数为1中添加成员变量赋值;   3 在调用内部类构造函数初始化内部类对象时, 会默认传入外部类引用。...简单来说,类加载都是发生在类要被用到时候。内部类也是一样 1 普通内部类在第一次用到时加载,并且每次实例化时都会执行内部成员变量初始化,以及代码块和构造方法。...总结一下Java类代码加载顺序,万变不离其宗。 规律一、初始化构造时,先父后子;只有在父类所有都构造完后子类才被初始化 规律二、类加载先是静态、后非静态、最后是构造函数。...与局部变量类似,局部内部类不能有访问说明符,因为它不是外围类一部分,但是它可以访问当前代码块常量,和此外围类所有的成员

1.3K00

【Java基本功】一文读懂Java内部类用法和原理

通过反编译内部类字节码,分析之后主要是通过以下几步做到:   1 编译器自动为内部类添加一个成员变量, 这个成员变量类型和外部类类型相同, 这个成员变量就是指向外部类对象引用;   2 编译器自动为内部类构造方法添加一个参数..., 参数类型是外部类类型, 在构造方法内部使用这个参数为1中添加成员变量赋值;   3 在调用内部类构造函数初始化内部类对象时, 会默认传入外部类引用。...简单来说,类加载都是发生在类要被用到时候。内部类也是一样 1 普通内部类在第一次用到时加载,并且每次实例化时都会执行内部成员变量初始化,以及代码块和构造方法。...总结一下Java类代码加载顺序,万变不离其宗。 规律一、初始化构造时,先父后子;只有在父类所有都构造完后子类才被初始化 规律二、类加载先是静态、后非静态、最后是构造函数。...与局部变量类似,局部内部类不能有访问说明符,因为它不是外围类一部分,但是它可以访问当前代码块常量,和此外围类所有的成员

96030

C++心决之类和对象详解(下篇)(封装进阶篇)

再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适初始值。...,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量初始化构造函数体中语句只能将其称为赋初值 ,而不能称作初始化。...因为 初始化只能初始化一次,而构造函数可以多次赋值 。...成员变量 在类中 声明次序 就是其在初始化列表中 初始化顺序 ,与其在初始化列表中先后次序无关 1.3 explicit关键字 构造函数不仅可以构造初始化对象, 对于接收单个参数构造函数,...静态成员变量一定要在类进行初始化 2.2 特性 1. 静态成员 为 所有类对象所共享 ,不属于某个具体对象,存放在静态区 2.

7710

疯狂Java笔记之面向对象陷阱

系统在编译阶段总会为非静态内部类构造器增加一个参数,非静态内部类构造第一个形参总是外部类。因此调用非静态内部类构造器时必须传入一个外部类对象作为参数,否则程序将会引发运行时异常。...非静态内部类不能拥有静态成员 对于非静态内部类而言,由于它本身就是一个非静态上下文环境,因此非静态内部类不允许拥有静态成员。...而程序定义其子类Base.In时,没有定义构造器,那么系统会为它提供一个无参数构造器。在sub无参数构造,编译器会增加代码super()————子类总会调用父类构造器。...static关键字 静态方法属于类 被static关键字修饰成员(Field,方法,内部类,初始化块,内部枚举类)属于类本身,而不是当个java对象,具体到静态方法也是如此,静态方法属于类。...当程序使用静态内部类时,外部类相当于静态内部类一个包,因此使用起来比较方便;但另一方面,这也给静态内部类增加了一个限制———静态内部类不能访问外部类非静态成员

36420

Java笔记

; 2.如果外部类内部类具有相同成员变量方法内部类默认访问自己成员变量方法,如果要访问外部类成员变量,可以使用 this 关键字,如:Outer.this.name (二).静态内部类:...:其作用域仅限于方法方法外部无法访问内部类 (1).局部内部类就像是方法里面的一个局部变量一样,是不能有 public、protected、private 以及 static 修饰符 (2)...局部内部类并不是直接调用方法传进来参数,而是内部类将传进来参数通过自己构造器备份到了自己内部, 自己内部方法调用实际是自己属性而不是外部类方法参数; 防止被篡改数据,而导致内部类得到值不一致...,匿名内部类中不能存在任何静态成员变量和静态方法; (5).匿名内部类中不能存在任何静态成员变量和静态方法,匿名内部类不能是抽象,它必须要实现继承类或者实现接口所有抽象方法 (6).匿名内部类初始化...2.静态方法不可以使用非静态变量 3.抽象方法不可以有函数

22130
领券