热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

day11【内部类、注解】

day11【内部类、注解】内部类概述1、什么是内部类?将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。2、为什么要声明内部类呢?当一个事物的

day11【内部类、注解】


内部类


概述


1、什么是内部类?

将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类


2、为什么要声明内部类呢?

当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,不在其他地方单独使用,那么整个内部的完整结构最好使用内部类。

而且内部类因为在外部类的里面,因此可以直接访问外部类的私有成员。


3、内部类都有哪些形式?

根据内部类声明的位置(如同变量的分类),我们可以分为:


(1)成员内部类:



  • 静态成员内部类

  • 非静态成员内部类


(2)局部内部类



  • 有名字的局部内部类

  • 匿名的内部类


静态内部类

语法格式:

【修饰符】 class 外部类{【其他修饰符】 static class 内部类{}
}

非静态成员内部类

语法格式:

【修饰符】 class 外部类{【修饰符】 class 内部类{}
}

局部内部类

语法格式:

【修饰符】 class 外部类{【修饰符】 返回值类型 方法名(【形参列表】){final/abstractclass 内部类{}}
}

匿名内部类

当我们在开发过程中,需要用到一个抽象类的子类的对象或一个接口的实现类的对象,而且只创建一个对象,而且逻辑代码也不复杂。那么我们原先怎么做的呢?

(1)编写类,继承这个父类或实现这个接口

(2)重写父类或父接口的方法

(3)创建这个子类或实现类的对象


小结:

/*内部类:
内部类的方法可以访问内部类的成员
内部类可以访问外部类的私有·成员‘
内部类可以访问外部类的成员
外部类:
外部类可以访问外部类的成员
外部类不能直接访问内部类普通成员内部类类型必须是外部类 内部类
创建对象的时候需要先创建外部类对象把次啊能创建内部类对象。
使用外部类对象.new的方式创建内部类静态内部类创建对象的时候 不需要创建外部类对象在创建内部类对象,可以直接创建内部类对象匿名内部类是局部内部类的一种特殊形式
匿名内部类的作用是作为接口的实现类 所以需要实现接口中所有的方法
*/


推荐阅读
  • Java面向对象编程深入解析
    本文详细探讨了Java中的关键字static、单例模式、main()方法、代码块、final关键字、抽象类与方法、模板方法设计模式、接口、内部类等内容,旨在帮助读者深入理解和掌握Java面向对象编程的核心概念。 ... [详细]
  • NIO 通道接口详解
    本文介绍了NIO(New Input/Output)中的通道接口及其相关概念,包括通道的基本功能、接口设计以及各类通道接口的具体用途。通过本文,读者可以深入了解NIO通道的设计原理及其在实际项目中的应用。 ... [详细]
  • 目录介绍01.CoordinatorLayout滑动抖动问题描述02.滑动抖动问题分析03.自定义AppBarLayout.Behavior说明04.CoordinatorLayo ... [详细]
  • 利用Java与Tesseract-OCR实现数字识别
    本文深入探讨了如何利用Java语言结合Tesseract-OCR技术来实现图像中的数字识别功能,旨在为开发者提供详细的指导和实践案例。 ... [详细]
  • 请看|差别_Android 6.0 运行时权限处理解析
    请看|差别_Android 6.0 运行时权限处理解析 ... [详细]
  • 近期,公司在构建新的交易系统时遇到了一个常见的问题——金额存储。由于涉及资金的操作需要高度的准确性,使用float类型进行金额计算可能会导致不可预见的误差。本文将深入探讨这一问题,并提供解决方案。 ... [详细]
  • 本文详细介绍了Java中io.rsocket.RSocket类的dispose()方法,并提供了多个实际应用中的代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
  • Java集合框架源码解读(1)——ArrayList、LinkedList和Vector
    java.util.List接口是JavaCollectionsFramework的一个重要组成部分,List接口的架构图如下:本文将通过剖析List接 ... [详细]
  • 本文详细探讨了 Java 中抽象类的概念、定义方式及其使用场景,通过具体示例说明抽象类在面向对象编程中的重要性和灵活性。 ... [详细]
  • 本文介绍如何在C#中利用Parallel类实现高效的多线程处理。自.NET Framework 4.0起引入的Parallel类,提供了强大的并行编程工具,包括并行的for和foreach循环,以及并行调用多个方法的功能。 ... [详细]
  • 当前,许多屏幕截图应用程序支持任意形状的截图功能。这引发了一个技术问题:如何高效地判断一个像素点是否位于指定的曲线或形状内部?本文将深入探讨这一问题,并提供一种简洁有效的解决方案。 ... [详细]
  • 本文介绍了如何通过Java代码实现Excel文件的上传,并将其中的数据读取后存储到数据库中。同时,记录了操作日志以确保操作的可追溯性。 ... [详细]
  • 我目前正在通过以下编程练习进行训练: ... [详细]
  • 纵向|发生_ListView和EditText使用解决方案 ... [详细]
  • 深入理解Java类加载机制
    本文详细探讨了Java虚拟机(JVM)中类加载器的工作原理,特别是如何通过类的全限定名从外部源获取二进制字节流,以及不同类型的类加载器及其在双亲委派模型中的角色。 ... [详细]
author-avatar
Samuel小嘎嘎
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有