`

Java内部类学习笔记

    博客分类:
  • Java
阅读更多
内部类概念
所谓内部类(inner class),顾名思义,就是将一个类定义在定义在另一个类的内部。内部的类称之为内部类
public class outer{
	class inner{
	//
}
}


特点
  • 内部类可以很好的实现隐藏,可以使用protected、private修饰符。
  • 内部类可以直接访问外部类的所有成员,包括私有的成员。
  • 外部类不能直接访问内部类的成员,必须首先建立内部类的对象才可以访问。
  • 内部类可以解决一些问题,比如间接地实现多继承。可以避免修改接口而实现同一个类中两个同名方法的调用。

MethodInnerClassDemo
abstract class B {
   abstract void method();
}
interface C{
	void method();
}
class A extends B implements C{
	@Override
	public void method() {
		System.out.println("method");
	}
	private class CClass implements C{

		@Override
		public void method() {
			System.out.println("method interface");
		}
		
	}
	public void metho2(){
		new CClass().method();
	}
}


成员内部类及应用
特点:
  • 成员内部类属于外部类的实例成员。相当于成员变量或方法。可以用public private protected default来修饰。在成员内部类中访问外部类的成员方法和属性,要使用“外部类名.this.成员方法”和“外部类名.this.属性”的形式。
  • 创建成员内部类的实例使用“外部类名.内部类名 实例名 = 外部类实例名.new 内部类构造方法(参数)”的形式。


限制:
  • 成员内部类不能与外部类重名。
  • 不能在成员内部类中定义static属性、方法和类(static final 形式的常量定义除外)。因为一个成员内部类实例必然与一个外部类实例关联,static成员完全可以移动其3外部类中去。



静态内部类及应用
特点:
  • 使用static修饰的成员内部类叫静态内部类。
  • 静态内部类跟外部类没有任何关系,只是在生成类名和类定义时有影响。静态内部类可以看作与外部类平级的类。使用方式与外部类平级的类完全相同。
  • 创建静态内部类的实例使用   外部类名.内部类名 实例名 = new外部类名.内部类名(参数)。


限制:
  • 静态内部类不能与外部类重名。
  • 静态内部类不嫩访问外部类的非静态属性和方法。外部类不能访问内部类的非静态属性和方法。



匿名内部类及应用
特点:
  • 匿名内部类是没有名称的内部类,没有办法引用它们。必须在创建的时候,作为new语句的一部分来声明并创建它们的实例。
  • 匿名内部类必须继承一个类(抽象的、非抽象的都可以)或者实现一个接口。如果父类(或者父接口)是抽象类,则匿名内部类必须实现其所有抽象方法。
  • new interface/superclass(){//类体},这种形式的new语句声明一个新的匿名类,它对一个给定的类进行拓展,或者实现一个给定的接口,并同时创建该匿名类的一个新实例。



局部内部类及应用
特点:
  • 定义在代码块{}、方法体中的类叫局部内部类。
  • 局部内部类访问外部类的属性和方法使用“外部类名.this.属性名”和“外部类名.this.方法名(参数)”的形式。
  • 对外部世界完全隐藏,只能在其作用域内生成对象。


限制:
  • 局部类不能加访问修饰符,因为它们不是类成员。
  • 局部内部类不能跟外部类重名。
  • 局部内部类访问作用域内的局部变量,该局部变量需要使用final修饰。


内部类使用


不修改父类和接口的方法来分别调用同名的方法


间接实现多继承


静态内部类使用
分享到:
评论

相关推荐

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

     《java jdk 7学习笔记》适合java的初中级读者,以及广大java应用开发人员。 作译者 林信良(网名:良葛格) 学历:台湾大学电机工程学系 经历:台湾升阳教育训练技术顾问、专业讲师,oracle授权训练中心讲师 ...

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

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

    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学习笔记 达内笔记(经典)

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

    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学习笔记-超强笔记

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

    java笔记.zip

    尚硅谷康师傅java学习笔记。 、2020-4-5 java学习笔记 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笔记 ...

    java学习笔记(内部资料)

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

    Java 内部类学习

    主要是inner class和multi-Thread的学习笔记,以及一些基本概念。

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

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

    _JavaSE内部学习笔记

    _JavaSE内部学习笔记

    java学习笔记源码MD.rar

    内部包含了jvm,spring,java多线程等等描述

    Java学习笔记(必看经典).doc

    里面包含基础知识,如修饰符,常用的关键字等,内部类,面向对象思想,异常处理相关知识点,常用集合知识点等等。

    JAVA学习精细笔记

    最详细的JAVA笔记,简练,详细。从Java概述,java程序的运行过程到接口,内部类,集合框架,线程等等,各种知识很全面

    Java学习笔记(javase)

    内容为本人整理学习javase时的笔记,java基础知识后续上传,内部含有两个文件,内容相同,文件格式不同,方便大家参考使用

    cyc学习笔记.pdf

    2021秋招学习笔记总结,包含Java基础、Java并发、数据库、redis等常用后端技术等内容。数据类型 注:包装类型中一般设有缓冲池,比如Integer、String。 1、Integer缓存池范围-128~127都是同一个地址,在缓存池范围...

    JAVA学习笔记达内内部使用,保证你没有看过

    达内内部使用,保证你没有看过,总结的很到位

    Java核心技术笔记

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

Global site tag (gtag.js) - Google Analytics