java内部类简单说就是定义在另一个类中的类。那么内部类有什么特点呢?

1、内部类方法可以访问该类定义所在作用域中的数据,包括私有数据。

2、内部类可以对同一包下的其它类隐藏

3、定义回调函数而又不想编写太多代码时使用匿名内部类比较便捷

Java内部类可以分为四种:普通内部类、局部内部类、匿名内部类和静态内部类。

1.普通内部类

打开UC浏览器 查看更多精彩图片

普通内部类定义如上面代码。上面代码可以看出跟普通类相比内部类具有访问拥有特权,它可以访问外围类私有成员,而外围类也可以访问它的私有成员包括私有方法。

那么其他类是否能实例化一个类的内部类呢?答案是可以的,只是语法有点奇怪,看代码:

打开UC浏览器 查看更多精彩图片

很显然,这里内部类的访问修饰符不能是private,否则其他类无权访问自然也不能实例化了。同样其他类实例化内部类后是没有权限访问它的私有数据域的,只能把它当作普通类来用。

2.静态内部类

将普通内部类声明为static就成了静态内部类(注意只有内部类前可以加static),它的特点是不能够访问外围类。通常静态内部类只是为了把一个类隐藏在另一个类的内部,不需要引用外围类对象。如果一个内部类声明在接口中那它会自动成为public静态内部类。

3.局部内部类

局部内部类是定义在方法中的类。局部内部类不能使用public或private修饰,它的作用域只限定在所定义的方法块内,即使外围类也不能访问它,它完全对外隐藏了。局部内部类可以访问外围类的私有变量,对于本方法内数据只能访问final修饰的变量。

打开UC浏览器 查看更多精彩图片

局部内部类

4.匿名内部类

匿名内部类应该是使用最广泛的,它没有类名但需要实现接口或继承类,因为没有类名所有它也没有构造函数,需要参数只能从父类构造器接收了

定义语法格式

new SuperType(construction parameters)

{

//override superType method

//inner class methods and data

}

代码示例:

java 类修饰符 作用域_java的4种内部类,你真的了解了吗?相关推荐

  1. java 类修饰符、成员变量修饰符、方法修饰符总结

    类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...

  2. java 权限修饰符大小_Java中访问权限修饰符public protected private, 缺省默认权限的用法总结...

    1.访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说: 也是一样. (2)friendly: 对于成员老说:如果一个类的成员没 ...

  3. java类默认访问权限_Java的四种访问权限

    ❝ 所谓访问权限,指的就是本类中的成员变量.成员方法对其他类的可见性 ❞ 试想一想,当我们修改一个非常庞大的项目时,如果所有变量和方法都是公共权限,那么后端中任何类都有权限去修改它的变量和方法,很有可 ...

  4. Java访问控制修饰符作用域

    参见下表: 作用域. 本类 子类 同包类 其他类 private √ default √ √ protected √ √ √ public √ √ √ √

  5. 10 - java 权限修饰符

    java权限修饰符 作用域 当前类 同package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly(defult) √ √ × × p ...

  6. java中类的修饰符_Java中的类修饰符

    之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了...只要把类的属性改成默认的就可以了,也 ...

  7. java的修饰符_java默认的修饰符是什么

    默认什么都不加,就是default(不用把default写出来). 意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多.' Java访问修饰符包括p ...

  8. java默认修饰符_java默认方法的修饰符是什么

    默认什么都不加,就是default(不用把default写出来). 意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多.' Java访问修饰符包括p ...

  9. java默认修饰符_java默认的修饰符是什么

    默认什么都不加,就是default(不用把default写出来). 意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多.' Java访问修饰符包括p ...

  10. java final修饰符_java final修饰符详解,final修饰方法

    之前给大家讲过java final修饰符final修饰变量方面的知识,那么下面要继续给大家讲到的就是final修饰方法方面的知识,一起来了解一下吧. final修饰的方法不能被重写,假如因为一些原因, ...

最新文章

  1. KB001: 兼容性问题与浏览器的内核及渲染模式
  2. 【结合实例】信息增益的计算
  3. “最严”整改后的海淀黄庄 :学费收取仍有猫腻
  4. 使用MyBatis后,DAO层的方法还能重载吗?
  5. 【面试】5道JAVA笔试算法题
  6. 通过mac电脑将macos系统的dmg镜像转换为iso文件,供VMware安装mac系统
  7. PHP爬虫抓取网页数据
  8. 如何恢复磁盘中被删除的数据
  9. Tip | Git复制粘贴 快捷键
  10. 工业镜头景深计算及工业镜头技术分析
  11. Java——第二次上机(第二部分)
  12. 计算机的命令用英语怎么说,计算机外部和内部命令的英语及词汇
  13. java记事本(一)
  14. Struts2的运行流程
  15. 5000英镑就可买到控制美国核武库的同款IBM电脑
  16. 【详细】Python基础(一)
  17. oracle对数据块的存取,简单了解数据在Oracle文件中的存储
  18. 基于spacedesk软件实现两台电脑的屏幕扩展方法
  19. systemctl 实现开机自启服务
  20. 【转】“HSB”、“lab“、“CMYK“、“RGB“有什么区别?

热门文章

  1. 每个初学者都应该搞懂的问题
  2. Atitit api design Usability simple 易用性之简单化设计 目录 1. 理论原则 2 1.1. 概念简单 2 1.2. 切换到了“write less, do more
  3. Atitit 个人 企业 政府 等组织 财政收入分类与提升途径attilax总结 v2
  4. Atitit.研发团队与公司绩效管理的原理概论的attilax总结
  5. Atitit.木马病毒 webftp 的原理跟个设计
  6. Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
  7. paip.提升效率--gui 的选择--swing最佳实践swt awt
  8. paip.c++ lua 调用attilax总结.
  9. 中国证券IT发展简史(上)
  10. android ndk串口触屏,Aandroid NDK开发之串口控制