- 定义:成员内部类是内部类中最常见的,也称为普通内部类。
-
代码:
//外部类HelloWorld public class HelloWorld{ //外部类的私有属性name private String name = "JAVA"; //外部类的成员属性 int age = 20; //成员内部类Inner public class Inner { String name = "java"; //内部类中的方法 public void show() { System.out.println("外部类中的name:" + HelloWorld.this.name); System.out.println("内部类中的name:" + name ); System.out.println("外部类中的age:" + age); } } //测试成员内部类 public static void main(String[] args) { //创建外部类的对象 HelloWorld o = new HelloWorld (); //创建内部类的对象 Inner inn = o.new Inner(); //调用内部类对象的show方法 inn.show(); } }
-
结果:
外部类中的name:JAVA
内部类中的name:java
外部类中的age:20 -
使用方法:
1、 Inner 类定义在 Outer 类的内部,相当于 Outer 类的一个成员变量的位置,Inner 类可以使用任意访问控制符,如 public 、 protected 、 private 等
2、 Inner 类中定义的 show() 方法可以直接访问 Outer 类中的数据,而不受访问控制符的影响,如直接访问 Outer 类中的私有属性age
3、 定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );
6、 外部类是不能直接使用内部类的成员和方法滴可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。
4、 编译上面的程序后,会发现产生了两个 .class 文件
其中,第二个是外部类的 .class 文件,第一个是内部类的 .class 文件,即成员内部类的 .class 文件总是这样:外部类名$内部类名.class
5、 如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。
- 浏览: 7174 次
相关推荐
Java成员内部类是一种在类内部定义的类,它可以访问外部类的所有成员,包括私有成员。成员内部类的使用在Java编程中具有独特的价值,它能够帮助我们更好地封装代码,提高代码的组织性和可读性。以下是关于Java成员...
成员内部类是定义在外部类的成员变量中的一种内部类。它可以访问外部类的所有成员变量和方法,包括私有的变量和方法。成员内部类不能有静态声明,否则编译将会失败。成员内部类可以通过外部类的对象来实例化,或者...
本文将详细介绍如何使用Java反射技术来获取内部类中的静态成员变量的值。 #### 二、背景知识 在深入探讨之前,我们需要了解几个基本概念: 1. **内部类**:内部类是一种特殊的类,定义在另一个类(外部类)的内部。...
Java 语言支持在一个类中定义另一个类,这样的类称做内部类。内部类和外嵌类之间存在着紧密的关系:内部类可以访问外嵌类的成员变量和方法,而外嵌类也可以使用内部类声明的对象作为其成员。内部类的类体中不能声明...
- 静态内部类和成员内部类在内存管理上有差异,静态内部类不会引起外部类的实例化,而成员内部类会。 - 匿名内部类不能包含任何静态声明,因为它们没有名称。 总的来说,Java 内部类是强大且灵活的工具,有助于构建...
- 不同类型的内部类(静态内部类、成员内部类、局部内部类和匿名内部类)的区别和用法 - 内部类的优缺点以及使用场景 这些目标将帮助你理解和掌握内部类的概念,并能够在适当的时候使用内部类来解决问题...
1. 成员内部类:在类的主体中定义,与类的其他成员具有相同的权限。 2. 局部内部类:在方法、构造器或块中定义,仅在其定义范围内可见。 3. 匿名内部类:没有名字的内部类,通常用作接口的匿名实现或创建一次性使用...
在静态嵌套类内部,不能访问外部类的非静态成员变量,这是由 Java 语法中“静态方法不能直接访问非静态成员”所限定。若想访问外部类的变量,必须通过其他方法解决。由於这个原因,静态嵌套类使用很少。 三、非静态...
Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不需要定义一个单独的类的情况下创建类的实例。这在处理回调、事件监听、单例模式以及其他需要短时间内定义一个简单类的情况时非常有用。本篇文章将...
一个成员内部类的实例总是与外部类的一个实例相关联,因此,你不能在没有外部类实例的情况下创建成员内部类的实例。 3. **本地内部类(Local Inner Classes)**:这些内部类是在方法体或初始化块中定义的。它们可以...
Java内部类主要包括以下几种类型:成员内部类(非静态内部类)、静态内部类(也称为静态嵌套类)、局部内部类和匿名内部类。 - **成员内部类**:这种类型的内部类是定义在外部类的一个成员位置上,它可以访问外部类...
内部类分为几种类型:成员内部类、局部内部类、匿名内部类和静态内部类。每种类型的内部类都有其独特的用途和特点。 ##### 3.2.1 成员内部类 成员内部类是最常见的内部类形式,它作为外部类的一个成员出现。它可以...
Java 中的内部类和匿名类 Java 中的内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在 C++ 里也有,那就是嵌套类(Nested Class)。内部类从表面上看,就是在类中又定义了一个类,而实际上并没有那么...
以下是关于Java成员类的一些关键知识点: 1. **访问外部类成员**: 成员类可以访问外部类的所有成员,包括私有成员。这是因为成员类被视为外部类的一部分,具有内部访问权限。例如,在`MyOuter`类中定义的`MyInner...
### Java中的内部类应用举例 #### 一、Java内部类概览 在Java编程语言中,内部类(Inner Classes)是一种独特的概念,它允许开发者在类的内部定义另一个类。这种设计模式增强了代码的封装性和模块化,同时也提供了...
1. 成员内部类:这是最常见的内部类类型,可以直接在类的主体中定义。成员内部类可以访问外部类的所有成员,包括私有变量和方法,因为它们之间存在着紧密的关联。但是,外部类不能直接访问内部类的非静态成员,需要...
1. 非静态内部类(也称为成员内部类) 非静态内部类是定义在外部类的成员位置的类,它可以访问外部类的所有成员,包括私有成员。创建非静态内部类的实例需要先创建外部类的实例。例如: ```java class Outer { ...
- 与顶级类相比,成员内部类可以具有更广泛的访问修饰符,包括public、protected、private以及默认访问级别。 9. **实例内部类特点** - 实例内部类实例持有对外部类实例的引用,可以访问外部类的所有非私有成员。...
- 成员内部类:作为外部类的成员。 - 局部内部类:定义在某个方法内部。 - 匿名内部类:没有名字的内部类,通常用于实现接口或继承类时立即使用。 - **内部类的使用环境**: - 当需要创建与外部类紧密相关的类时...
成员内部类,顾名思义,就像类的其他成员(如字段和方法)一样,存在于类的主体中。成员内部类可以直接访问外部类的所有成员,包括私有成员。例如: ```java public class OuterClass { private int outerField = ...