今天呢我们来看一下JAVA中的内部类。
1、定义:那么顾名思意内部类就是定义在类中的类。例如:
public class Person{
private int age;
class Name{
}
}
中的Name就是一个内部类。要注意的是内部类是编译时的语法。
2、内部类的分类
内部类分为:成员内部类、局部内部类、静态内部类和匿名内部类。
1)成员内部类:作为外部类的一个成员存在与外部类的属性方法并列。
如:Name就是一个成员内部类。
注意:(1)在内部类中可以直接访问外部类的么有属性,不会破坏封装性。
(2)内部类和外部类的实例允许命名冲突(相同的名字)。
(3)在内部内中访问实例变量要用this.属性名。在内部类中访问外部类的实例变量要用:外部类名.this.属性名。
(4)在另一个类中要创建该内部类要先创建一个外部类的实例,然后再创建该成员内部类的实例。
如:Person p = new Person();
Person.Name n = p.new Name();
(5)成员内部类不可以有static成员,因为static属性是在类加裁的时候被首先创建,而在这时内部类还没被创建。
2)局部内部类:在外部类的方法中定义的内部类。如:
public class Person(){
private int age;
public void run(){
class Run{
}
}
}
类Run就是局部内部类。
注意:(1)局部内部类的定义和局部变量的定义一样,不用加限定符,其作用域是为本代码块。
(2)它可以访问外部类的实例变量,也可以访问外部类的局部变量,但是外部类的局部变量必须为final的。
(3)可以配合interface来使用来做到强制性的弱耦合。
(4)在另外的一个类的中不可以创建局部内部类的实例,只能在局部内部类中来创建。
3)静态内部类:也是定义在类的内部用static来修饰。如:
public class Person{
private int age;
static class Name{
}
}
Name便是一个static内部类。
注意:(1)静态内部类只能访问外部类的static成员。
(2)在其它的类中要创建一个static内部类的对象不用外部类的对象。
Person.Name n = new Person.Name();
4)匿名内部类:定义在类的内部并且没有类名。如:
public class Person{
private int age;
class{
//一个匿名内部类
}
}
注意:1)匿名内部类只能创建一次实例。它从属于局部内部类。所局部内部类的所有限制都对它有效。
2)匿名内部类是唯一一种没有构造方法的类。
3)匿名内部类可以实现接口的回调。
分享到:
相关推荐
良葛格Java学习笔记,html版本,内容还可以,希望初学者可以有用。
Java学习资料 java se JAVA基础学习笔记和演示案例代码项目
《Java JDK7学习笔记》针对java se 7新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新。并详细介绍了jvm、jre、java se api、jdk与ide之间的对照关系。必要时从java se api的源代码分析,...
收集的java李兴华老师的课件笔记。感觉还不错,适合回顾和新手补习。
mldn 李兴华老师的笔记 2009年java核心讲解
NULL 博文链接:https://hwhanwan.iteye.com/blog/1717997
《Java JDK7学习笔记》针对java se 7新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新。并详细介绍了jvm、jre、java se api、jdk与ide之间的对照关系。必要时从java se api的源代码分析,...
《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型...
java学习笔记大全:java内容介绍 java编程可以分成三个方向: 1、java se (j2se)桌面开发 java中的基础中的基础 2、java ee (j2ee)web开发 3、java me (j2me)手机开发 java se课程介绍 java面向对象编程(基础) java...
张龙 java se课程笔记 java学习者的经典必看笔记
java jdk 学习笔记java jdk 学习笔记java jdk 学习笔记
该资源为个人学习笔记,(包含学习中个人觉得易混淆的,难理解的,某些便于理解的内存直观图,知识点的对比等),有部分没整理出来 。 本人菜鸟 。该资源仅供se初学者,高手莫笑 。
公司几位高手一起总结的一份JAVA SE的笔记.总结的很精练,新手可当学习向导查阅,达人可当工具手册使用.真是练习JAVA,杀人必备的好文档!
●本书是作者多年来教学实践经验的总结,汇集了学员在学习课程或认证考试中遇到的概念、操作、应用等问题及解决方案, ●针对Java SE 8新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新, ●...
传智播客Java_SE基础毕向东老师全程笔记.pdf
java学习笔记,主要是基础部分
从java历程开始到javaSE出道,涉猎到了javaSE所有的知识点,里面不仅有知识点笔记还有练习源码例子以及相关资料和PPT等。非常实用值得你拥有
《java jdk 7学习笔记》针对java se 7新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新。并详细介绍了jvm、jre、java se api、jdk与ide之间的对照关系。必要时从java se api的源代码分析,...
1、JAVA SE 2、MySQL + JDBC 3、JAVA WEB 4、Mybatis 5、SSM 6、大前端 7、Vue 8、SpringBoot 9、Spring Security 10、Shiro 11、Spring Cloud 12、JVM 13、JUC 14、Git 15、Linux 16、Redis 17、ElasticSearch 18、...
1.Java_SE基础全程学习笔记.pdf 2.Java开发工作经验高级特性总结.pdf 3.Java数据结构笔记.pdf 4.Java学员总结笔记.pdf