`
929118967
  • 浏览: 20214 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
博客专栏
Fcebf22e-9505-38db-b3f2-65fdcc3fd6a5
java开发的深入浅出
浏览量:6898
文章分类
社区版块
存档分类
最新评论

java笔记之内部类

阅读更多

前言

内部类主要用于封装。任何内部类都会被编译成独立的class文件,class文件名:外部类$内部类;内部类用于封装,所以很少被外部调用。

正文

内部类

1.概念:在一个类中定义另外一个类。内部类包含在它所定义的外部类的类体中
2.分类:按照内部类定义的位置分类,可分为静态内部类,成员内部类,匿名内部类,局部内部类。

静态内部类

在类体中定义,以静态成员的形式出现的类。
1)语法:
static class 类名{
类体
}
2)特性:
1))在静态内部类中访问外部类的成员,该成员必须是为静态的。但可以使用外部类的对象引用来访问外部类的非静态成员。
2))在静态内部类中访问外部类的方法,该方法必须是为静态的。但可以使用外部类的对象引用来访问外部类的非静态方法。
3))在外部类访问内部类的静态方法,使用内部类类名.方法名。访问内部类的非静态方法使用内部类引用.方法名。代码示例:
<script src="https://code.csdn.net/snippets/267803.js" type="text/javascript"></script>
4))静态内部类的实例化方式:外部类的类名.内部类的类名 变量名 = new 外部类类名.内部类名();
5))静态内部类可被四大访问控制符所修饰

成员内部类

在类中定义的类,该类以成员的形式出现,和类的属性和方法同级
1)语法:
class 类名{
类体
}
2)特性:
1))成员内部类可访问外部类的静态成员和非静态成员.
2))成员内部类无法再外面的类直接实例化,但可通过内部类所在的外部类中提供一个返回内部类实例的方法。示例如下:
<script src="https://code.csdn.net/snippets/267811.js" type="text/javascript"></script>
3))成员内部类可被四大访问控制符所修饰
4))成员内部类可定义为抽象的成员内部类
5))成员内部类可继承为抽象的成员内部类
6))成员内部类不能包含静态方法。外部类访问成员内部类的成员,只能通过内部类的引用访问。
局部

局部内部类

它可定义在一个方法中,不能被static修饰,相当于一条java语句。
1)语法:
放回值 方法名(参数列表){
class 类名{
类体
}
}
2)特性:
1))局部内部类访问局部变量时,局部变量需要final修饰;局部内部类可直接访问成员变量
2))局部内部类进行实例化是有范围的,只能在当前的这个方法中进行实例化。
3))局部内部类和局部变量一样的存在作用域。当方法执行完毕后,局部内部类的实例对象会被销毁。局部内部类的作用域存在于方法中。
4))局部内部类只能被【Default】修饰,另外还可被abstract,final修饰。

匿名内部类(重点)

可以定义在类的任何位置。犹如一句话。同时它无类名
1)语法:
类名 引用=new 类名(){
类体
}
2)特性:
1))匿名内部类中的{}是内部类的类体。类体中可定义属性和方法
2))匿名内部类无法定义构造器,因为匿名内部类没有类名。
3))匿名内部类的定义首先要创建对象,在创建对象后加入类体{}。
4))(重点)匿名内部类继承抽象类和实现接口时,只需在类体中实现其抽象方法。
该使用方式,在某种意义上使得抽象类和接口可实例化。
(这种方式也可以使用基类的引用指向子类的对象,是多态的表现形式之一)

总结

匿名内部类,本人是使用比较多的,在使用集合的comparator比较器时候,常常使用匿名内部类解决问题。


分享到:
评论

相关推荐

    java笔记.zip

    2020-4-6 java笔记 ---内部类 2020-4-6 java笔记 ---异常 2020-4-6 java笔记 --多线程 2020-4-8 java笔记 String类 2020-4-9 java 比较器 2020-4-10 java笔记 枚举类 2020-4-10 java 注解(Annotation) 2020-4-11 ...

    java学习笔记(内部类)汇集

    java中的内部类是比较难以理解的一个问题,此文档为java内部类学习的文档资料汇集

    Java内部类基础笔记

    Java内部类的基础笔记,适合刚学Java的阅读,使用代码来解释内部类。

    达内Java培训-CoreJava全程笔记(WORD唐亮版)

    CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 集合 Set 46 CoreJava DAY14 集合 Map 49 CoreJava DAY15 异常、断言 52 CoreJava DAY16 反射、注释 57 CoreJava DAY17 GUI 64 CoreJava DAY...

    java代码笔记2010-06-01:Java内部类 静态内部类 局部内部类 明明内部类;StringBuffer reverse的使用;

    NULL 博文链接:https://jayxigua.iteye.com/blog/686371

    CoreJava笔记

    CoreJava笔记 CoreJava DAY01 Java概述 1 CoreJava DAY02 数据类型和控制结构 6 CoreJava DAY03 数组 11 CoreJava DAY04 15 CoreJava DAY05 面向对象 17 CoreJava DAY06 类的加载过程、实例化、继承、多态 20 Core...

    java学习笔记(内部资料)

    java学习笔记 内部资料 对查阅,知识总结,参加java面试等 很有帮助

    java学习笔记 达内笔记(经典)

    (二)面向对象技术总结.pdf (三)corejava高级特性总结 (四)接口学习总结 (五)异常和内部类 (六)集合框架学习总结 (七)GUI和AWT事件模型 (八)多线程学习总结 (九)输入输出流学习总结 (十)网络编程学习总结

    观看韩顺平学习整理java的笔记到异常

    帮助大家复习java基础知识其中有 hashCode 2 toString 2 finalize 2 用已学知识做出简单的房屋出租系统 3 类方法使用注意事项和细节讨论 4 main()方法 4 代码块 4 代码块使用注意事项和细节 5 单例模式 6 final...

    JAVA笔记达内培训内部笔记

    JAVA基础学习,详细的资源描述有机会获得我们的推荐,更有利于他人下载,赚取更多积分。

    Java学习笔记-超强笔记

    实例变量的作用域至少在本类内部,受访问控制符的限制。 在重合作用域,实例变量和局部变量允许有命名冲突,“局部优先”。 定义方法: 格式: [ 修饰符 ] 返回类型 方法名( 参数列表 ) [ throws ...

    关于内部类的笔记

    java关于内部类的笔记

    java培训笔记(java基础知识第一到七天)

    某培训公司内部机密资料。 java培训笔记(java基础知识第一到七天) 基础知识部分的知识点。

    java学习笔记 初学者必读

    7.11.1. 内部类的分类 7-29 7.11.2. 成员内部类 7-29 7.11.3. 局部内部类 7-30 7.11.4. 静态内部类 7-30 7.11.5. 匿名内部类 7-31 7.12. 集合 7-31 7.12.1. 集合接口类层次 7-32 7.12.2. 集合类层次 7-33 7.12.3. 五...

    java内部学习笔记.docx

    3.16内部类 26 3.17匿名类 27 3.18二维数组和对象数组 28 3.19其他注意事项 28 Java SE核心I 30 4.1 Object类 30 4.2 String类 31 4.3 StringUtils类 33 4.4 StringBuilder类 33 4.5正则表达式 34 4.6 Date类 35 4.7...

    整理java读书笔记十五之java中的内部类

    内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。本文给大家分享java读书笔记十五之java中的内部类,对java读书笔记相关知识感兴趣的朋友一起学习吧

    Java 面向对象笔记

    Java面向对象笔记 Java面向对象知识点分成7部分:对象类、继承多态、构造器、类包内外访问权限、各种静态内部类、抽象函数、接口

    Java基础内容-内部类学习笔记

    根据老师讲解写的笔记

    Java核心技术笔记

    面向对象技术总结 corejava高级特性总结 接口学习总结 异常和内部类 集合框架学习总结....

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍  《java jdk 7学习笔记》是作者多年来教学实践经验的总结...

Global site tag (gtag.js) - Google Analytics