Java中的内部类
来源:互联网 发布:mac book可以安装vs么 编辑:程序博客网 时间:2024/06/05 19:31
Java中存在内部类,主要是可以在一个类中再定义一个类。定义在内部的类叫做内部类,外部包裹内部类的叫做外部类。内部类的作用主要有:(1)内部类实现了更好的封装,将内部类隐藏在外部类内,不允许同一包中的其他类访问该内部类。(2)内部类中的方法可以直接访问外部类的所有数据,包括私有数据。(3)内部类实现的功能外部类也能实现,只不过是更加方便。其中,Java中的内部类一共有四种,分别是,成员内部类,静态内部类,方法内部类,匿名内部类。
1.成员内部类
(1)内部类定义在内部,相当于外部类的一个成员变量的位置。内部类声明时, 可以使用任意的访问控制符。如public,private,protected都可以。
(2)内部类中的方法可以访问外部类所有的成员变量,同时,内部类也能直接调用外部类的方法。如果内部类和外部类有一个相同的变量a,在内部类的方法中使用a则默认是使用内部类中的成员变量,如果想调用外部类中的变量a,则需要使用(外部类.this.a )的方式。
(3)如果想在main()函数中调用内部类中方法,需要创建一个内部类的对象调用这个方法,创建内部类对象通过(外部类.new 内部类())实现。
(4)外部类不能直接使用内部类的方法跟变量,只能通过先创建内部类的对象,再用对象调用内部类的方法跟成员变量。
2.静态内部类
由static关键字修饰的内部类,称为静态类。
(1)静态内部类不能直接访问外部类的非静态成员变量,但是可以通过(new 外部类.非静态成员变量())的方式访问。
静态内部类也可以直接调用外部类的静态方法,非静态方法通过(new 外部类.非静态方法())。
(2)如果外部类的静态成员变量跟内部类的成员变量名称相同时,仍然以a为例,通过(外部类.a)使用外部类的静态成员变量,若使用a,则使用的是内部类的成员变量。
(3)创建静态内部类的对象时,可以直接通过(new 内部类)的方式,不需要使用外部类。
3.方法内部类
就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,只能在该方法内部可以只用。因此,方法内部类不能用static以及public,private,protected这些修饰。
在创建内部类的方法中创建该内部类的对象,调用内部类的方法。此时该内部类的方法仍然可以直接使用创建内部类的方法中的成员变量。
- java中的内部类
- JAVA中的内部类
- java 中的内部类
- java中的内部类
- Java中的内部类
- JAVA 中的内部类
- java中的内部类
- java 中的内部类
- java中的内部类
- Java中的内部类
- java中的内部类
- Java 中的内部类
- java 中的内部类
- java中的内部类
- Java中的内部类
- java中的内部类
- Java中的内部类
- java中的内部类
- sql统计各科不及格的人数,要求查询结果是一行
- 本地视频自动化测试工具
- MySQL数据库优化
- pojo实体创建
- web app开发 转
- Java中的内部类
- ARP协议包类型的几种应用
- 自定义ListView item包含checkbox实现单选记录自己开发是遇到的问题
- Android常用延时操作的两种方法
- 用Scrapy爬取教务处通知公告
- 从 数组1中过滤出数组2中没有的对象
- 关于学习Gson的简单分析
- Xcode更新7.2 之后注释插件失效的解决办法
- IntelliSense: PCH warning: header stop cannot be in a macro or #if block. An intellisense PCH file