JavaSE18-面向对象-内部类

news2024/11/16 11:35:02

文章目录

  • 一、局部内部类
  • 二、成员内部类
  • 三、静态内部类
  • 四、匿名内部类

一、局部内部类

  1. 把类定义在方法中
  2. 对象创建格式:直接在定义内部类的方法中创建。如果在该方法外就不能使用该局部内部类了。
  3. 应用场景:如果需要定义一个在方法中临时使用的类可以使用局部内部类。不过该内部类基本不会用到。
  4. 注意事项:内部类可以使用外部的局部变量,但要求这些局部变量必须是事实常量。事实常量:赋值后就不能修改。
public class Outer {
    public void test(){
        class Inner{
            public void print(){
                System.out.println("局部内部类");
            }
        }
        Inner inner = new Inner();
        inner.print();
    }
}

public static void main(String[] args) {
    Outer outer = new Outer();
    outer.test();
}

二、成员内部类

  1. 把类定义在类中
  2. 对象创建格式:在定义内部类的类中创建对象即可。
  3. 特点:
  • 在成员内部类中可以直接使用外部类的成员,即使这个成员是私有的。
  • 如果外部类的成员内部类的成员重名了,可以使用外部类名.this.成员名来表示外部类的成员
  • 成员内部类中不能定义静态的成员。(非静态中不使用静态)
  1. 一个类不会单独使用,需要和另外类(外部类)一起使用才有意义。并且会用到外部类中的私有成员的时候可以把该类定义为一个内部类。
    在这里插入图片描述

三、静态内部类

  1. 把类定义在类中方法外,然后使用static关键字修饰。
  2. 特点:在静态内部类中可以直接使用外部类静态。即使是私有的。
  3. 应用场景:一个类不会单独使用,需要和另外类(外部类)一起使用才有意义。需要在内部类中定义静态成员的时候,可以把成员内部类用static修饰变成静态内部类。

四、匿名内部类

  1. 匿名内部类本质是一个对象,他是某个类(接口)的子类(实现类)对象。
  2. 应用场景:如果需要创建一个类或者接口的子类对象,但是这个子类只会使用一次,没必要单独创建一个类,就可以使用匿名内部类的形式。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud(微服务)学习篇(一)

SpringCloud(微服务)学习篇(一) 1 nacos的下载和配置 1.1 进入官网 nacos官网 1.2 点击nacos➡点击最新稳定版本 1.3 往下翻并点击nacos-server-2.2.0.zip,此时就已经开始下载了 1.4 把下载好的压缩包解压到没有中文路径的目录里面 1.5 修改application.properties文件 1.…

Testlink相关功能使用部分总结

1.首页面(普通用户,测试用例创建用户的权限) 右上角切换具体的项目;页面上方包含主页、用例、测试执行、测试结果;左侧包含测试项目管理、关键字管理、编辑测试用例、搜索测试用例、每用户创建的测试用例;…

Element UI的基本使用

学习来源,传送门 目录创建vue项目Element UI主要的标签Vue router 来动态创建左侧导航栏为何会发生嵌套menu与router的绑定设置默认展开设置默认打开页面创建vue项目 以管理员身份,在选定目录下,使用vue ui 按照正常配置配好,可…

Linux(ubuntu)系统搭建docker下的LNMP环境

系统环境 系统:Ubuntu 18.04.4 LTS x86_64 管理面板:宝塔面板7.9.8 下载镜像 通过面板下载docker和docker-compose 下载完毕后通过docker->镜像->从仓库拉取拉取镜像ubuntu:20.04 或者通过docker pull ubuntu:20.04拉取镜像 通过docker->容…

代码随想录算法训练营第四十一天 | 01背包问题-二维数组滚动数组,416. 分割等和子集

一、参考资料01背包问题 二维 https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E8%83%8C%E5%8C%85-1.html 视频讲解:https://www.bilibili.com/video/BV1cg411g7Y6 01背包问题 一维 https://programmercarl.com/%E8%83%8C%E5…

大功率分流电阻器产品阵容进一步扩大,助力大功率应用小型化

全球知名半导体制造商ROHM(总部位于日本京都市)面向车载、工业设备及白色家电等大功率应用,开发出大功率低阻值分流电阻器“GMR 系列”中额定功率最大的、10W 电阻器“GMR320”。近年来,在车载领域和工业设备领域中,应…

什么是敏捷测试

敏捷 反应快速灵敏。 在敏捷软件开发领域,更注重的以人为核心,迭代,循序渐进的开发方法。相比传统的开发方法,这种方法能更快速的开发,上线,反馈,调整、迭代。以敏捷的姿态去发展产品。 敏捷与…

基于java+swing+mysql员工工资管理系统

基于javaswingmysql员工工资管理系统一、系统介绍二、功能展示1.用户登陆2.员工主要功能3.管理员主要功能三、系统实现1.StudentFrame .java四、其它1.其他系统实现2.获取源码一、系统介绍 该项目功能相对完善,有管理员和普通用户两个角色,分别实现了一…

磷脂酰丝氨酸的作用;CAS:383907-32-2;磷脂酰丝氨酸(phosphatidylserine,PS)

磷脂酰丝氨酸(phosphatidylserine,PS)又称丝氨酸磷脂,二酰甘油酰磷酸丝氨酸,简称PS,是一类普遍存在的磷脂,通常位于细胞膜的内层,磷酯化合物中的磷酸甘油酯类,是细胞膜组…

数字化时代,企业如何通过技术改造传统客户服务模式

B端产品要从流量思维到客户思维上转变,良好的客户服务能够让B端企业走的越远走的越多,当然,对于所有产品或者企业来说,也唯有客户服务才是走的更远更久的保证,优秀的客户服务团队是企业的潜在优质财富。 搭建客服团队…

ATTO 647N-NHS ester,ATTO 647N SE,ATTO 647N NHS酯,适用于单分子检测应用

基础产品数据(Basic Product Data):CAS号:N/A中文名:ATTO 647N-琥珀酰亚胺酯,ATTO 647N-活性酯,ATTO 647N NHS酯英文名:ATTO 647 N-NHS,ATTO647N-NHS,ATTO 64…

为什么转行IT行业都会选择学习Python?

现在学习Python的人越来越多了,很多人都疑惑为什么这么多人转行IT都会选择学Python?为什么学Python要参加Python培训班呢?接下来蛋糕为大家答疑解惑一下吧。 虽然Python已经非常普及,但是大部分的大学都还没有开设Python课程,如果想要学习…

XGBoost学习-应用案例

文章目录一、过拟合:剪枝参数与回归模型调参二、XGBoost模型的保存和调用使用Joblib保存和调用模型三、分类案例:XGB中的样本不均衡问题四、 XGBoost类中的其他参数和功能总结一、过拟合:剪枝参数与回归模型调参 class xgboost.XGBRegressor…

2023前端vue面试题(边面边更)

Vue中key的作用 vue 中 key 值的作用可以分为两种情况来考虑: 第一种情况是 v-if 中使用 key。由于 Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。因此当使用 v-if 来实现元素切换的时候,如果切换前后含有相同类型的…

只用最适合的 | 主流 .NET 报表控件全面对比

随着 .NET 平台的出现,报表相关的开发控件随着而来,已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的3款 .NET报表控件:FastReport、Stimulsoft、水晶报表,给所有报表开发人员在做产品选…

家用洗地机哪款最好用?全球洗地机十大品牌

近年来,智能家用电器洗地机已经融入到我们生活中了,成为最受欢迎的清洁工具了,家用洗地机吸拖洗一体,不用先扫后拖那么麻烦,只需轻轻一推,就能把扫地、拖地、擦地的活全干了,操作简单&#xff0…

【iOS】—— 初识RAC响应式编程

RAC(ReactiveCocoa) 文章目录RAC(ReactiveCocoa)响应式编程和函数式编程的区别函数式编程响应式编程响应式编程的优点RAC操作1.利用button点击实现点击事件和传值2.RACSignal用法RACSignal总结:3.对于label的TapGestur…

Java | IO 模式之 JavaNIO 应用

文章目录NIO1 Java NIO 基本介绍2 NIO 和 BIO 的比较3 NIO 三大核心原理示意图3.1 Buffer缓冲区3.2 Channel(通道)3.3 Selector选择器3.4 总结4 NIO核心一:缓冲区(Buffer)4.1 缓冲区(Buffer)4.2 Buffer 类及其子类4.3 …

泛型与Map接口

Java学习之道 泛型 泛型这种参数类型可以用在类、方法和接口中,分别被称为泛型类,泛型方法,泛型接口 参数化类型:将类型由原来的具体的类型参数化,在使用/调用时传入具体的类型JDK5引入特性提供了安全检测机制&#xf…

[oeasy]python0097_苹果诞生_史蒂夫_乔布斯_沃兹尼亚克_apple_I

苹果诞生 回忆上次内容 上次时代华纳公司 凭借手中的影视ip和资本吞并了雅达利公司 此时 雅达利公司 曾经开发过pong的 优秀员工 乔布斯 还在 印度禅修 寻找自我 看到游戏行业 蓬勃发展 乔布斯 也想有自己的 一番天地 可是 他的机会在哪里呢?🤔 Jobs 跟着 Wozn…