当前位置: 首页 > news >正文

java内部类概述及使用方法

前言:

打好基础,daydayup!

内部类 

内部类概述:

内部类是类的五大成分之一(成员变量,方法,构造器,内部类,代码块),如果一个类定义在另一个类的内部,这个类就是内部类

 例:

public class A{public class B{}
}

 内部类种类:

内部类总共有4种形式:1,成员内部类;2,静态内部类;3,局部内部类;4,匿名内部类

1,成员内部类

是类中的普通成员,类似学过的普通成员变量,成员方法。

例:

public class A{public class B{}
}

创建对象格式为:

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

例:

A.B a = new A().new B();

 2,静态内部类

有static修饰的内部类,属于外部类自己持有

例:

public class A{public static class B{} 
}

 创建对象格式和创建成员内部类格式一样;和成员内部类区别在于:可以直接访问外部类的静态成员,不可以直接访问外部类的实例成员。

3,局部内部类

局部内部类定义在方法中,代码块中,构造器等执行体中

例:

public class A{public void go(){class B
}
}

局部内部类几乎没什么使用场景

4,匿名内部类

匿名内部类是一种特殊的局部内部类;匿名指的是程序员不需要为这个类声明名字。

 表现格式:

new 类/接口(参数){类的内容
}

匿名内部类本质是一个子类,并会立即创建一个子类对象;内部类最主要的作用为简化代码

如下图:

左边为一般情况,右边为使用了匿名内部类。通过匿名内部类可以省去一个子类的构造,简化了代码。

 

总结:

 内部类可以极大的精简代码,但是简化的同时会导致代码拆分度下降,如果出现bug或分工时会导致挑错困难,要谨慎使用。

总结结束,撒花!

相关文章:

  • C++ 动态规划 状态压缩DP 蒙德里安的梦想
  • C++ STL精通之旅:向量、集合与映射等容器详解
  • 【VTKExamples::PolyData】第二十一期 ImplicitPolyDataDistance
  • Flutter学习(八)Flutter_Boost接入
  • 《Docker极简教程》--Docker基础--基础知识(一)
  • elementui上传文件不允许重名
  • Git的一些基本操作
  • MC34063异常发热分析
  • 【初识爬虫+requests模块】
  • 服务器与电脑的区别
  • 酷开科技,打造非凡的生活体验
  • vue-cli引入本地json数据:封装为js文件,无需请求直接读取
  • hive 创建表 字段类型
  • React+Antd实现省、市区级联下拉多选组件(支持只选省不选市)
  • 使用 git 上传文件时,运行 命令 git pull origin 时未成功,出现报错信息
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Git 使用集
  • MobX
  • MySQL数据库运维之数据恢复
  • python 装饰器(一)
  • python学习笔记-类对象的信息
  • session共享问题解决方案
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 批量截取pdf文件
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • postgresql行列转换函数
  • ​2021半年盘点,不想你错过的重磅新书
  • # C++之functional库用法整理
  • #宝哥教你#查看jquery绑定的事件函数
  • (1)常见O(n^2)排序算法解析
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)nginx 安装、启停
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (九)c52学习之旅-定时器
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)80c52学习之旅-起始篇
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • ******IT公司面试题汇总+优秀技术博客汇总
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net IOC框架入门之一 Unity
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 指南:抽象化实现的基类
  • .NET单元测试
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET框架
  • .net下简单快捷的数值高低位切换
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • @DataRedisTest测试redis从未如此丝滑