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

day038:内部类、private、static修饰的成员内部类、匿名内部类

一、内部类1.什么是内部类?内部类就是在一个类中再定义一个类。例如:在A类中创建一个B类,则B类就是内部类。2.内部类创建对象的格式

一、内部类


1.什么是内部类?

内部类就是在一个类中再定义一个类。例如:在A类中创建一个B类,则B类就是内部类。


2.内部类创建对象的格式

格式:
     外部类名.内部类名 对象名 = new 外部类对象().new 内部类对象() ;

eg:

内部类使用外部类成员,可以直接使用,包括外部类的私有成员;而外部类要想使用内部类成员,则要创建对象

eg:


3.内部类的两种形式


  • 成员内部类:在类的成员位置(类中方法外)
  • 局部内部类:在类的局部位置(类中方法内)
     

4.private、static修饰的成员内部类

(1)当内部类被private修饰后,如何调用其中的方法:在此内部类所在的外部类中再创建一个方法,在新方法中创建内部类对象,再用外部类对新方法进行调用。

代码示例:

 

(2)当内部类被static修饰后,如何调用其中的方法:

调用格式: 外部类名.内部类名 对象名 = new 外部类对象.内部类对象();

代码示例:

 注:在静态内部类继续编写一个静态方法。静态修饰的内容,可以使用类名.的方式进行调用
Outer.Inner.method();

代码示例:

 


5.局部内部类

局部内部类是在方法中定义的类,外界无法直接使用,需要在方法内部创建对象并使用。

该类可以直接访问外部类的成员,也可以访问方法内的局部变量

代码示例:

 再创建外部类对象,进行调用即可:


二、匿名内部类


1.什么是匿名内部类?

匿名内部类本质上是一个特殊的局部内部类。它将继承\实现、方法重写、创建对象三个步骤,放在了一步进行它是一个实现了接口或者继承了一个类的子类对象,因为是对象,所以可以直接调用方法。


2.前提条件:

需要存在一个接口或类


3.格式

new 类名或接口名(){

重写方法;

};

 代码示例:


 4.当一个接口中存在多个抽象方法,该怎么使用匿名内部类进行调用呢?

使用多态方法进行调用,引用父类,指向子类对象。

代码示例:


 5.匿名内部类的使用场景

当方法的形式参数是接口或者抽象类时,可以将匿名内部类作为实际参数进行传递

 


推荐阅读
  • D17:C#设计模式之十六观察者模式(Observer Pattern)【行为型】
    一、引言今天是2017年11月份的最后一天,也就是2017年11月30日,利用今天再写一个模式,争取下个月(也就是12月份& ... [详细]
  • 深入理解线程池及其基本实现
    本文探讨了线程池的概念、优势及其在Java中的应用。通过实例分析不同类型的线程池,并指导如何构建一个简易的线程池。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • 处理Android EditText中数字输入与parseInt方法
    本文探讨了如何在Android应用中从EditText组件安全地获取并解析用户输入的数字,特别是用于设置端口号的情况。通过示例代码和异常处理策略,展示了有效的方法来避免因非法输入导致的应用崩溃。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • 本文详细介绍了如何在Spring框架中设置事件发布器、定义事件监听器及响应事件的具体步骤。通过实现ApplicationEventPublisherAware接口来创建事件发布器,利用ApplicationEvent类定义自定义事件,并通过ApplicationListener接口来处理这些事件。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • Java 中的十进制样式 getZeroDigit()方法,示例 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本文将详细介绍如何使用Java编程语言生成指定数量的不重复随机数,包括具体的实现方法和代码示例。适合初学者和有一定基础的开发者参考。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.jena.atlas.lib.ByteBufferLib 类下的 acopyArray 方法,并提供了多个实际应用中的代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
author-avatar
育霖培伦861
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有