黑马程序员——内部类
来源:互联网 发布:光子去红血丝知乎 编辑:程序博客网 时间:2024/06/08 16:30
黑马程序员——内部类
内部类的分类:
分成员内部类、局部内部类和匿名类
成员内部类:
1在外部类中访问内部类规则:
(1)内部类可以直接访问外部类中的成员,包括私有,之所以可以直接访问外部类中的成员是因为内部 类中持 有一个外部类的引用,格式为:外部类名.this
(2)外部类要想访问内部类必须先建立内部类的对象。
2外部其他类访问一个内部类格式:
(1)当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类上直接建立内部类对象。格式为:外部类名.内部类名 变量名=外部类对象.内部类对象
(2)在外部其他类中直接访问被Static修饰的内部类中的非静态成员,其格式为: new 外部类名.内部类名().方法名()
(3)在外部其他类中直接访问被static 修饰的内部类中的静态成员时,其格式为:外部类名.内部类名.方法名( ),
3位置:
成员内部类在类中方法外,其写法跟普通类一样,有属性和方法。
主意:一般情况下类是不能被Static,private,修饰的,但是由于成员内部类属于一个类中的成员,所以他是可以被Static,private修饰的,但是被static修饰的内部类只能访问外部类中的静态成员,出现了访问局限性。如果在一个类的静态方法中,要想访问其内部类,这个内部类也必须是静态的。其实如果你在本类非静态方法中,如果想用这个非静态的内部类,你可以把这个类当成一个普通的类来用,通过new对象来调用其成员方法
局部内部类:
位置:在类的方法中
主意:该局部内部类是不可以被成员修饰符所修饰的,该内部类还是可以直接访问其外部类中的成员,因为还持有外部类的引用,但是该局部内部类要想访问他所在函数中的局部变量,该变量必须被final修饰,但是在jdk1.7版本中,可以不用final修饰,如果该类所在的方法是静态方法,那莫该类一定是静态类
匿名内部类:
根据这个内部类的位置,他可以是某个类中的成员内部类对象,也可以是某个类中的局部内部类对象,只是没有指向他的一个引用;一般情况匿名内部类都是定义在方法中的,因为我们定义匿名内部类一般都是要调用其方法的,属于语句,而语句只能写在方法里,所以一般匿名内部类都是局部内部类。当然,他也可以被说成是某个类或接口的一个子类,说法都对。他可以覆盖父类中的一些方法,同样父类中的非私有属性,和方法他都是可以调用的,跟平常类的继承是没有太大区别的,注意:在写这个内部类时,一定要想好,你到底想让他干嘛,不要为了单纯写内部类而写,如果你不调用他的方法,这个内部类是没有意义的,如果你调用这个内部类的多个方法,最好给他一个指向他的引用。
0 0
- 黑马程序员—内部类
- 黑马程序员—内部类
- 黑马程序员—内部类
- 黑马程序员——内部类、匿名内部类
- 黑马程序员——内部类、匿名内部类
- 黑马程序员——java 内部类、匿名内部类
- 黑马程序员—内部类与匿名内部类 异常
- 黑马程序员—内部类、匿名内部类
- 黑马程序员——内部类
- 黑马程序员——内部类, 异常
- 黑马程序员——内部类
- 黑马程序员——内部类
- 黑马程序员 JAVASE——内部类
- 黑马程序员——内部类
- 黑马程序员——内部类
- 黑马程序员——匿名内部类
- 黑马程序员——内部类
- 黑马程序员——内部类
- iOS 设置图片拉伸效果图
- 杭电acm1976
- Angular JS 如何使用Cordova 插件
- Intent工具箱
- Oracle如何编译BBED
- 黑马程序员——内部类
- Qualcomm平台Mipi DSI转RGB
- Activity中的Window的setContentView
- 浅谈Android 6.0之Runtime Permission
- 实时视频流播放 和 流 推流器
- ios发布应用到appstore
- websocket协议学习
- java里面的treemap与HashMap
- 怎样用 Android Annotations 写出高性能代码