内部类的分类:成员内部类,静态内部类,局部内部类,匿名内部类
成员内部类:如同类的普通成员一样。
1 可以加任意的修饰:private, protected.(顶级类只可以为public, default)
2 内部类不可脱离其外部类的限制使用, 因此在外部类以外创建内部类要这样:
OuterClass outerObject=new OuterClass(params);
OuterClass.InnerClass innerObject=outerObject.new InnerClass(params);
3 内部类对象可以访问外部类的任意变量或方法(包括private变量或方法);因为Java编译器在创建内部类对象时,隐式的把其外部类对象的引用也传了进去并一直保存着。
4 在内部类中,与外部类同名的成员会被屏蔽, 不过可以这样访问外部的同名属性: OuterClass.this.field ;
5 内部类可以实现一个外部接口或抽象类, 外部类返回这样的一个接口,以达到隐藏接口的实现的目的.
6 非静态内部类不能有静态成员,因为它违背了"成员类必须依赖外部类而存在"的原则(静态成员在Class被load的时候就初始化了);
静态内部类:如同类的静态成员一样; 它和成员内部类的区别是它没有指向外部类的引用;
1 创建静态内部类对象:OuterClass.InnerClass obj = OuterClass.InnerClass(params);
2 静态内部类可以有非静态成员;
3 静态内部类只能访问外部类的静态成员;
局部内部类:方法体或者代码片断中定义的类
1 局部内部类前面不能有access修饰符;
2 它有它自己的作用域,超出了这个范围就无效(无法使用);
3 它可以访问外部类的所有成员(因为外部类的成员对该方法可见);
4 定义在方法体中的内部类只能访问该方法的final变量,原因:定义在方法体中的变量会随着方法的退出而消亡,通过定义其为final变量,可以扩展其生命期;
5 定义在代码块中的内部类只能使用在该block中定义的final变量;
匿名内部类:在某些情况下,我们只需要内部类的一个对象,而不需要该类的名字;
1 匿名内部类的实例化: new SomeInterfaceOrClass(){......}; 意思是创造一个实现(继承)了SomeInterfaceOrClass的类的对象;
分享到:
相关推荐
在这个"java内部类使用例子"中,我们将深入探讨这些类型,并通过实际代码来理解它们的工作原理。 首先,成员内部类是在外部类的成员位置定义的类,它可以访问外部类的所有成员,包括私有成员。成员内部类的实例与...
Java内部类是Java语言提供的一种独特机制,它允许在一个类的内部定义另一个类。这种设计模式使得代码结构更紧凑,可以更好地封装和隐藏...理解并熟练掌握内部类的使用,能够帮助开发者编写更加灵活、高效的Java代码。
在标题“发两个匿名内部类使用的例子”中,我们将会探讨两种不同的场景,如何利用匿名内部类来解决问题。这篇博客文章的链接虽然没有提供具体内容,但我们可以根据主题来深入讲解匿名内部类的基本概念、用途及其优势...
- **实例内部类**:没有使用`static`修饰的内部类,与外部类的对象绑定,每个外部类的对象可以有多个实例内部类的对象。创建实例内部类对象需要先创建外部类对象,并通过外部类对象来实例化内部类。 - **静态内部...
对于Java内部类的使用进行总结,根据语法,特征,注意事项等创建出的关于内部类的思维导图,欢迎下载使用!编辑软件freemind
Java语言中的静态内部类,也称为嵌套类,是内部类的一种特殊形式,它与非静态内部类(也称为成员内部类)相比有着独特的特点和使用场景。在深入探讨其使用规范之前,我们先理解静态内部类的基本概念。 静态内部类不...
局部内部类和匿名内部类是Java中的一种特性,它们允许我们...通过使用final关键字,我们可以确保内部类所使用的变量在创建后不会被意外地修改,从而避免了潜在的逻辑错误。这种设计使得Java的内部类机制既灵活又安全。
4. **静态内部类(静态嵌套类)**:静态内部类使用`static`关键字定义,这意味着它并不依赖于外围类的实例。因此,可以独立于外围类实例创建静态内部类的对象。尽管如此,它仍然可以访问外围类的静态成员。 #### 二...
内部类的使用场景之一是当某个类仅需被其外部类使用时。这种情况下,将此类定义为内部类可以提高代码的封装性和可维护性。 ##### 示例:简易数据库连接池实现 在构建企业级Java应用程序时,数据库连接池是一个非常...
计算机后端-Java-Java核心基础-第17章 异常处理 05. 局部内部类使用的一个注意点.avi
综上所述,将`BroadcastReceiver`作为内部类使用可以带来更好的组件协同和代码组织,但需要根据具体需求权衡其适用性。在阅读提供的博客文章(链接已给出)后,你可以获得更深入的理解和实践建议。
Java 中内部类使用方法实战案例分析 Java 中内部类的使用方法是一个非常重要的知识点,它们可以帮助开发者更好地组织代码、提高代码的可读性和维护性。在本文中,我们将通过实战案例来分析 Java 中内部类的使用方法...
本文将深入探讨内部类的使用,包括其分类、特点以及如何与外部类进行交互。同时,我们还将触及Java中的Stream API,这是一种现代化的数据处理方式,特别适用于集合操作。 首先,内部类分为四种类型:成员内部类、...
如果成员内部类使用了`static`修饰符,则变成了**静态嵌套类**。 #### 四、静态嵌套类 静态嵌套类与成员内部类的主要区别在于它不需要依赖外部类的实例即可实例化,并且它可以包含静态成员。 ##### 静态嵌套类的...
以下是对成员内部类使用的简单示例: ```java public class Outer { private int i = 1; class Inner { public void display() { System.out.println("i from inner class: " + i); } } public void ...
静态内部类使用static修饰,因此它可以像普通静态成员一样,无需外围类对象即可创建。然而,静态内部类不能直接访问外围类的非静态成员,需要通过new 外部类().成员的方式访问。如果与外部类的静态成员同名,可以...
在使用匿名内部类时,要记住以下几个原则:匿名内部类不能有构造方法、匿名内部类不能是public、protected、private、static、只能创建匿名内部类的一个实例、匿名内部类不能定义任何静态成员、静态方法、一个匿名...
根据给定的文件内容,我们看到一个例子中的内部类使用: ```java class Outer { private int index = 10; class Inner { private int index = 20; void print() { int index = 30; System.out.println(index)...
本篇文章将深入探讨Java匿名内部类的使用规范,帮助你更好地理解和应用这一特性。 首先,理解匿名内部类的基本概念。匿名内部类没有名字,它不能被其他类直接引用,但可以作为局部变量、成员变量或者方法参数。它...