Java内部类学习笔记
概述:
java类是单继承,java内部类就是为了实现继承多个具体的或者抽象类的能力--多继承。
或者某个类的实现不想或者也不需要设置为public的,例如直接实例化匿名内部类A new parentClass(){......},这个内部类里的实现只是被当前外部类使用,其他外部类有他们自己个性化的内部类B实现 new parentClass(){......},虽然这两个匿名内部类都是继承parentClass,但是内部类A和内部类B都只是在各自的外部类中使用,不会被其他类使用,所以不需要单独的创建这个类,这时仅作为内部类来实现。
位置分类:
1.成员内部类 2.局部内部类 3.作用域内部类(任意作用域 if for)4.接口内部类
|
|
每个位置可以包含:普通内部类,匿名内部类,静态(嵌套)内部类
详情点:
1. 成员内部类
-- 它就是类的一个成员属性,由访问权限控制,default,private,protected,public
-- 三种获取成员内部类方式:
a. public InnerClass getInnerClass(){} 定义在外部类,在另一个类中调用该方法获取
b. OutClass outter = new OutClass(); OutClass.InnerClass inner = outter.new InnerClass(); 这种方式如果内部类的权限控制为private在外部类中,则无法使用,编译会失败。
c. 在外部类定义另一个成员属性,类型为成员内部类并且实例化new一个对象,则可以在另一个类中根据相应权限使用
2.局部内部类
-- 内部类定义在方法内,只可以在方法体内new一个内部类实例,赋值给一个局部变量或者直接return
3.作用域内部类
--定义在if或者其他作用域内,也只可在该作用域内new实例
4.接口内部类
--接口内的内部类自动转坏为public static,通常可以内部类实现外部接口的某些方法,这些方法实现作用通用的实现给其他实现类
=======
5.普通内部类
--无static修饰,不可以包含static成员属性,也不可以包含其他static内部类(嵌套内部类)
--隐式地包含一个指针指向外部类对象,依赖于外部类对象,如果没有外部类对象无法创建内部类对象
6.匿名内部类
-- new ClassA{ private String str1; public void method(){}} 是指创建了一个继承于ClassA的匿名类对象,ClassA可以是具体的某个类也可以是抽象类
-- new InterfaceA{public void method(){}} 是指创建了一个实现接口InterfaceA并且实现了方法method
-- 可以用于成员属性或者局部方法属性去使用
7. 静态内部类(嵌套)
-- 由static修饰,可以在嵌套静态内部类,可以由static成员
-- 无隐式指针指向外部类,不依赖外部类对象
参考自《Thinking In Java》
相关推荐
11.java基础拾遗--匿名内部类语法详解.mp4
源码阅读对于理解Java集合类的内部工作原理至关重要。例如,通过查看ArrayList的扩容机制,我们可以了解到为什么在预估集合大小时提前分配足够空间能提高性能。LinkedList的实现揭示了如何通过双向链表实现高效的...
10.java基础拾遗--匿名内部类的应用--实现scala中的集合map方法.mp4
Java 基础-高级类特性 本资源摘要信息涵盖了 Java 编程语言的高级类特性,包括 static 关键字、final 关键字、抽象类、接口、内部类等知识点。 1. static 关键字 static 关键字是 Java 中的一个关键字,用于修饰...
这个"java基础教程----精华版"显然是一份精心整理的资料,旨在帮助初学者快速掌握Java编程的基础知识。下面将详细介绍Java语言的核心概念和关键知识点。 1. **Java语法基础**: - **变量**:在Java中,变量是存储...
计算机后端-Java-Java核心基础-第15章 面向对象07 24. 内部类的分类.avi
### Java基础 #### 1. Java概述 - **定义**:Java是一种面向对象的编程语言,由Sun Microsystems公司于1995年推出。 - **特点**: - 面向对象:支持封装、继承、多态等特性。 - 平台无关性:Java程序可以在任何...
Java 基础第七章内部类与异常类 Java 语言支持在一个类中定义另一个类,这样的类称做内部类。内部类和外嵌类之间存在着紧密的关系:内部类可以访问外嵌类的成员变量和方法,而外嵌类也可以使用内部类声明的对象作为...
Java 基础第七章 -内部类与异常类 本章节主要讲解 Java 的内部类和异常类的概念、特点、使用方法和注意事项。 内部类 ------ 内部类是 Java 支持的一种特殊类,定义在另一个类的内部。内部类和外嵌类之间存在关系...
计算机后端-Java-Java核心基础-第17章 异常处理 04. 复习:内部类.avi
`jar`标签提示这是一个Java Archive文件,是Java平台的标准归档格式,包含了编译后的类文件和其他资源,通常用于分发Java应用程序或库。在Java项目中,`jar`文件被引入作为依赖,使得项目能够使用其中包含的类和方法...
计算机后端-Java-Java核心基础-第15章 面向对象07 25. 成员内部类的特点.avi
计算机后端-Java-Java核心基础-第15章 面向对象07 28. 局部内部类的使用.avi
开发者可以通过理解其内部机制,结合`FastDFSClient.java`源码,优化性能,实现更复杂的应用需求,如文件元数据管理、权限控制等。 总结起来,`fastdfs-client-java-1.29-SNAPSHOT.jar`是FastDFS与Java应用交互的...
计算机后端-Java-Java核心基础-第15章 面向对象07 27. 成员内部类中调用外部类的结构.avi
Java基础是学习任何Java开发技能的关键,而函数作为程序的基本构造块,对于理解和编写高效代码至关重要。在这个"01-Java基础-函数(启发式定义)"的教学视频中,你将深入探讨Java中的函数概念,以及它们如何在内存空间...
计算机后端-Java-Java核心基础-第15章 面向对象07 26. 如何实例化成员内部类.avi
计算机后端-Java-Java核心基础-第15章 面向对象07 03. 复习:Object类及内部方法.avi
计算机后端-Java-Java核心基础-第17章 异常处理 05. 局部内部类使用的一个注意点.avi
Java允许在类内部定义其他类,称为内部类。内部类分为成员内部类、局部内部类、匿名内部类和静态内部类,每种类型有不同的使用场景和访问规则。 以上只是Java面向对象编程的基础知识点,实际开发中,还需要掌握更...