java 类修饰符 作用域_java的4种内部类,你真的了解了吗?
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种内部类,你真的了解了吗?相关推荐
- java 类修饰符、成员变量修饰符、方法修饰符总结
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...
- java 权限修饰符大小_Java中访问权限修饰符public protected private, 缺省默认权限的用法总结...
1.访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说: 也是一样. (2)friendly: 对于成员老说:如果一个类的成员没 ...
- java类默认访问权限_Java的四种访问权限
❝ 所谓访问权限,指的就是本类中的成员变量.成员方法对其他类的可见性 ❞ 试想一想,当我们修改一个非常庞大的项目时,如果所有变量和方法都是公共权限,那么后端中任何类都有权限去修改它的变量和方法,很有可 ...
- Java访问控制修饰符作用域
参见下表: 作用域. 本类 子类 同包类 其他类 private √ default √ √ protected √ √ √ public √ √ √ √
- 10 - java 权限修饰符
java权限修饰符 作用域 当前类 同package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly(defult) √ √ × × p ...
- java中类的修饰符_Java中的类修饰符
之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了...只要把类的属性改成默认的就可以了,也 ...
- java的修饰符_java默认的修饰符是什么
默认什么都不加,就是default(不用把default写出来). 意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多.' Java访问修饰符包括p ...
- java默认修饰符_java默认方法的修饰符是什么
默认什么都不加,就是default(不用把default写出来). 意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多.' Java访问修饰符包括p ...
- java默认修饰符_java默认的修饰符是什么
默认什么都不加,就是default(不用把default写出来). 意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多.' Java访问修饰符包括p ...
- java final修饰符_java final修饰符详解,final修饰方法
之前给大家讲过java final修饰符final修饰变量方面的知识,那么下面要继续给大家讲到的就是final修饰方法方面的知识,一起来了解一下吧. final修饰的方法不能被重写,假如因为一些原因, ...
最新文章
- KB001: 兼容性问题与浏览器的内核及渲染模式
- 【结合实例】信息增益的计算
- “最严”整改后的海淀黄庄 :学费收取仍有猫腻
- 使用MyBatis后,DAO层的方法还能重载吗?
- 【面试】5道JAVA笔试算法题
- 通过mac电脑将macos系统的dmg镜像转换为iso文件,供VMware安装mac系统
- PHP爬虫抓取网页数据
- 如何恢复磁盘中被删除的数据
- Tip | Git复制粘贴 快捷键
- 工业镜头景深计算及工业镜头技术分析
- Java——第二次上机(第二部分)
- 计算机的命令用英语怎么说,计算机外部和内部命令的英语及词汇
- java记事本(一)
- Struts2的运行流程
- 5000英镑就可买到控制美国核武库的同款IBM电脑
- 【详细】Python基础(一)
- oracle对数据块的存取,简单了解数据在Oracle文件中的存储
- 基于spacedesk软件实现两台电脑的屏幕扩展方法
- systemctl 实现开机自启服务
- 【转】“HSB”、“lab“、“CMYK“、“RGB“有什么区别?
热门文章
- 每个初学者都应该搞懂的问题
- Atitit api design Usability simple 易用性之简单化设计 目录 1. 理论原则	2 1.1. 概念简单	2 1.2. 切换到了“write less, do more
- Atitit 个人 企业 政府 等组织 财政收入分类与提升途径attilax总结 v2
- Atitit.研发团队与公司绩效管理的原理概论的attilax总结
- Atitit.木马病毒 webftp 的原理跟个设计
- Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
- paip.提升效率--gui 的选择--swing最佳实践swt awt
- paip.c++ lua 调用attilax总结.
- 中国证券IT发展简史(上)
- android ndk串口触屏,Aandroid NDK开发之串口控制