定义:定义在类里面的类被称为“内部类”。
根据内部类的定义位置分为:
- 成员内部类
- 静态内部类
- 方法内部类
- 匿名内部类
成员内部类:内部类与外部类的成员变量在一级。
public class TestInnerClass { private String name = "外部类"; public class InnerClass { private String name = "成员内部类"; public void show() { System.out.println("我是" + TestInnerClass.this.name);//使用外部类.this.变量名→访问外部类的变量,且不管外部类的修饰符是什么 System.out.println("我是" + name); } } public static void main(String[] args) { TestInnerClass ic = new TestInnerClass(); System.out.println(ic.name); ic.new InnerClass().show();//必须使用外部类对象来创建内部类对象 show();//编译出错,外部类无法直接访问内部类的方法及变量 } }
包含成员内部类的编译效果:
静态内部类:
public class TestInnerClass { private String name = "外部类"; private static String name2 = "静态外部变量"; public static class InnerClass2 { public static String name2 = "内部类静态变量"; public void show() { //静态内部类可以使用外部类对象访问外部类非静态变量 System.out.println("外部类非静态变量:" + new TestInnerClass().name); //静态内部类可以使用外部类直接访问外部类静态变量 System.out.println("外部静态变量:" + TestInnerClass.name2); System.out.println("内部类静态变量:" + name2); //静态内部类可以使用外部类直接调用外部类的静态方法 TestInnerClass.show(); //静态内部类使用外部类对象访问外部类非静态方法 new TestInnerClass().show2(); } } public static void show() { System.out.println("外部类静态方法"); } public void show2() { System.out.println("外部类非静态方法"); } public static void main(String[] args) { InnerClass2 ic2 = new InnerClass2();//静态内部类可以直接创建 ic2.show(); } }
方法内部类:内部类定义在外部类的方法中,且只有在外部类的方法中可见、使用,故方法的内部类不能使用访问控制修饰符和static修饰符,可以使用abstract和final修饰。
public class TestInnerClass { public void show2() { class MethodInnerClass { //方法内部类 public String name = "方法内部类"; public void show() { System.out.println(name); } } MethodInnerClass mis = new MethodInnerClass();//创建方法内部类 mis.show(); } public static void main(String[] args) { TestInnerClass ic = new TestInnerClass(); ic.show2(); } }
相关推荐
Java 内部类 实例化 在Outer类的静态方法中实例化内部类 在同一个包的其它类中实例化Outer类中的内部类
在java语言中,有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其他类的内部。
根据不同的定义位置和作用域,Java内部类可以分为四类:成员内部类、局部内部类、匿名内部类和静态内部类。下面将详细介绍这些内部类的定义和使用方法。 成员内部类 成员内部类是最常见的内部类形式,它定义在外部...
成员内部类是指在另一个类中定义但没有使用 `static` 关键字的类。它的定义格式如下: ```java public class 外部类 { ... class 成员内部类 { ... } } ``` **特点** - **访问权限**:成员内部类可以访问外部...
Java中的内部类与外部类是Java面向对象编程中一个重要的特性,它允许我们在一个类的内部定义另一个类。这种设计模式提供了更高级别的封装,并且能够实现一些特殊的功能,如匿名内部类、事件处理等。以下是对内部类与...
JAVA从JDK1.1开始引入了内部类,可以参见代码,感觉好处就是设计类的时候可以偷懒,呵呵。主要是可以引用类的内部其他元素,差不多是把这个内部类当成原类的元素。还有可以隐藏类的一些设计细节,好处还是很多的。
Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不需要定义一个单独的类的情况下创建类的实例。这在处理回调、事件监听、单例模式以及其他需要短时间内定义一个简单类的情况时非常有用。本篇文章将...
Java 中内部类使用方法实战案例分析 Java 中内部类的使用方法是一个非常重要的知识点,它们可以帮助开发者更好地组织代码、提高代码的可读性和维护性。在本文中,我们将通过实战案例来分析 Java 中内部类的使用方法...
14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14...
### Java内部类详解 #### 一、内部类的分类与概念 Java的内部类机制是其强大特性之一,它允许类作为另一个类的成员存在,从而增强了代码的封装性和复用性。根据定义和作用域的不同,Java内部类主要分为四类: 1. ...
在内部类中访问外部类的成员可以使用 `Outerclass.this` 来指定。 3. 局部内部类(Local Inner Class) 局部内部类定义在方法或代码块内,其作用域仅限于该方法或代码块。它们通常用于实现特定方法的功能,且只能...
Java 语言支持在一个类中定义另一个类,这样的类称做内部类。内部类和外嵌类之间存在着紧密的关系:内部类可以访问外嵌类的成员变量和方法,而外嵌类也可以使用内部类声明的对象作为其成员。内部类的类体中不能声明...
Java内部类是Java语言中的一种特殊类别,它是指定义在另外一个类内部的类。内部类可以访问外部类的所有成员变量和方法,包括私有的变量和方法。内部类可以分为四种:成员内部类、静态嵌套类、方法内部类和匿名内部...
### Java内部类总结 在Java编程语言中,内部类是一个重要的概念,它允许开发者在一个类的内部定义另一个类。这种特性极大地增强了代码的封装性和复用性,同时也为解决特定问题提供了灵活的方法。本文将围绕Java内部...
5. **静态方法调用**:在静态内部类中可以直接访问外部类的静态方法和变量,但是无法直接访问非静态成员。 6. **非静态方法调用限制**:如果需要访问外部类的非静态方法或变量,则必须通过外部类的对象引用来进行...
16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...
Java内部类是Java语言中一个独特且强大的特性,它允许在一个类的定义内部定义另一个类。内部类可以访问外部类的所有成员,包括私有成员,这使得内部类在实现某些特定设计模式时非常有用。本篇文章将深入探讨Java内部...
成员内部类的使用在Java编程中具有独特的价值,它能够帮助我们更好地封装代码,提高代码的组织性和可读性。以下是关于Java成员内部类的一些关键知识点: 1. **分类**:成员内部类分为两种,静态内部类(Static ...