大部分时候,类被定义成一个独立的程序单元,在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类,内部类有如下特点:
 1.内部类提供了更好的封闭,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。假设需要创建Cow类,Cow类需要组合一个CowLeg对象,Cowleg类只有在Cow类里才有效,离开了Cow类之后没有任何意义。在这种情况下,就可把Cowleg定义成Cow的内部类,不允许其他类访问Cowleg.
2.内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相访问,但外部类不能访问内部类的实现细节,例如内部类的成员变量。
3匿名内部类适合用于创建那些公需要一次使用的类,对于前面介绍的命令模式,当需要传入一个Command对象时,重新专门定义PrintCommand和AddCommand两个实现类可能没有太大的 意义,因为这两个实现类可能公需要使用一镒,在这种情况下,使用匿名类将更方便。
4.内部类比外部类可以多使用三个修饰符:private protected static 外部类不可以使用这三个修饰符。
5非静态内部 类不能拥有静态成员。

转载于:https://www.cnblogs.com/haofaner/p/5541607.html

java学习之(内部类)相关推荐

  1. java学习(三)内部类

    内部类的定义:将一个类定义在另一个类里面,里面那个类就是内部类. 气死我了,上代码: package facetoone; class Outer{//Outer是一个外部类class Inner{/ ...

  2. Java学习第十二天----方法参数类型以及返回值类型问题、链式编程、package包、权限修饰符、内部类、成员内部类

    Java学习第十二天----方法参数类型以及返回值类型问题.链式编程.package包.权限修饰符.内部类.成员内部类 1.方法参数类型: (1)类名作为形式参数: public class MyTe ...

  3. Java学习笔记二十:Java中的内部类

    Java中的内部类 一:什么是内部类: (1).什么是内部类呢? 内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. (2).那为什么要将一个类定 ...

  4. Java学习--内部类

    以下复制于  https://www.cnblogs.com/dolphin0520/p/3811445.html 作者:Matrix海子 出处:http://www.cnblogs.com/dolp ...

  5. Java学习路线图,如何学习Java事半功倍?

    作为一个初学者想掌握Java并不是很容易,Java本身是具有一定难度的,虽然说兴趣这东西可以让我们学习不累,但是有多少人学习是因为兴趣,或者有多少人知道自己的兴趣在哪?所以我很明确的告诉你学习这事本来 ...

  6. 我的WEB之路(一)-2.JAVA学习路线

    第一阶段:针对性夯实JAVA基础 课程名称 核心要点 完成目标 Java基础入门 搭建Java开发和运行环境等,IDE工具的学习和使用,Java语言基础,数据类型,运算符,条件和循环,数组使用等,Ja ...

  7. java学习笔记9--内部类总结

    java学习笔记系列: java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对 ...

  8. Java入门1.2.3—一个老鸟的Java学习心得

    Java入门1.2.3-一个老鸟的Java学习心得 基本信息 作者: 臧萌    出版社:清华大学出版社 ISBN:9787302217831 上架时间:2010-3-30 出版日期:2010 年3月 ...

  9. javame学习_从零基础自学Java教程:648集全网最新Java学习教程,一学就会

    我们都知道Java的功能非常的强大,Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即J ...

  10. 自学java 第十章内部类(一)

    今天学习了一部分java中的内部类. 内部类指将一个类的定义放在另一个类的内部,那它就是一个内部类. 指明一个引用时内部类的类型可以通过"外部类名.内部类名"的写法声明,如果想返回 ...

最新文章

  1. IPv6 — 与 5G 共荣共生
  2. djanjo 使用a标签跳转_django页面跳转怎么写
  3. thinkphp 视图(二)变量输出、赋值和替换
  4. 逃出你的肖申克(四):理智与情感
  5. Android中通过ImageSwitcher实现相册滑动查看照片功能(附代码下载)
  6. Ubuntu16.04下安装MySQL
  7. Android项目实战视频教程_快递轨迹查询应用开发
  8. Spring 框架基础(04):AOP切面编程概念,几种实现方式演示
  9. android 搭建短信平台,Android 短信SDK集成文档 | Mob文档中心
  10. (二)Struts.xml文件详解
  11. linux、mysql、nginx、tomcat 环境下压力测试的主要调试参数
  12. 【读书笔记】Head First设计模式-设计模式入门-鸭子会不会飞(1)
  13. c语言读取三菱plc数据,三菱plc怎么读取程序_电脑读取三菱PLC数据简单方法
  14. java jpg转pdf_java实现Img与PDF相互转换
  15. 笃行务实 布萌区块链选择数字资产作为区块链行业突破口
  16. java练习:图书销售管理系统(三),出版社管理
  17. 【Matplotlib】(二)图例legend
  18. 爬去微信小程序服务器代码,微信小程序反编译及源码抓取(2021最新)
  19. mysql创建新用户
  20. 里奥老师乾坤大挪移—哈希表与哈希函数专题1

热门文章

  1. 嵌入式GUI FTK支持输入法
  2. 解决列表某项文字过度过多 需要自适应撑开高度展示 其他项目按照行高居中
  3. 工作392-选择Hbuilder x导入项目
  4. 工作389-移动端控制
  5. [css] 在css中为什么说不建议使用@import?
  6. 工作208:element $message居中测试无法实现
  7. “约见”面试官系列之常见面试题之第八十四篇之手写promise(建议收藏)
  8. 前端学习(2233):react的子传父数据传递
  9. 前端学习(2162):知识回顾
  10. 前端学习(2051)vue之电商管理系统电商系统之开启gzip文件传输