博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java内部类
阅读量:4652 次
发布时间:2019-06-09

本文共 1107 字,大约阅读时间需要 3 分钟。

内部类的主要作用

1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类

2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据

 

内部类可分为以下几种:

  • 成员内部类  :1.成员内部类可以无条件访问外部类的所有成员的属性和方法(包括private成员和静态成员)

                                  2.   如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,

           如果要访问外部类的成员变量,需要使用这种方式访问:   外部类 . this . 成员变量(方法)

          3.  外部类是不能直接使用内部类的成员和方法,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。内部类 对象名 = 外部类对象.new 内部类( );

    

  • 静态内部类    1.  静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 

         2.如果外部类的静态成员与内部类的成员名称相同,可通过“外部类名.静态成员”访问外部类的静态成员;

          如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员

         3. 创建静态内部类的对象时,分为两种:1.在外部类的  mian主方法里   不需要创建外部类的对象,可以直接使用 静态内部类 对象名= new 静态内部类();

                           2.在测试类(即在外部类 外面的类) 需要这样 Outer.Inner in = new Outer.Inner();//(创建静态内部类对象)

 

  • 局部内部类

                   1.局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。

          2.局部内部类就像是方法里面的一个局部变量一样,是不能有public、protected、private以及static修饰符的。

 

  • 匿名内部类    匿名内部类是唯一一种没有构造器的类。正因为其没有构造器,所以匿名内部类的使用范围非常有限,大部分匿名内部类用于接口回调。

          匿名内部类在编译的时候由系统自动起名为Outter$1.class。一般来说,匿名内部类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是重写。

          同样的,匿名内部类也是不能有访问修饰符和static修饰符的。

转载于:https://www.cnblogs.com/gshao/p/9979450.html

你可能感兴趣的文章
第5章 使用MUI与H5+构建移动端app
查看>>
poj 2528 Mayor's posters (线段树+染色)
查看>>
eclipse中跳转到其它函数方法后如何快速返回原处
查看>>
第三次作业
查看>>
javascript相关知识
查看>>
数组对象去重
查看>>
你未必知道的12个JavaScript技巧
查看>>
mysql的基本操作命令
查看>>
微信小程序---数据缓存
查看>>
Python网页正文转换语音文件的操作方法
查看>>
shell入门-shell特性
查看>>
asp.net 与数据库操作
查看>>
常用SQL查询语句
查看>>
补充[BNDSOJ]小p的数列
查看>>
读APUE分析散列表的使用
查看>>
jquery选中checkbox多选项并添加到文本框中
查看>>
CI框架后台添加左侧导航栏出现的一系列问题
查看>>
cocos2d-js 运行动画
查看>>
1.基础知识
查看>>
[NOI2018]你的名字
查看>>