java基础 内部类详解
什么是内部类?
1.内部类也是一个类;
2.内部类位于其他类声明内部。
内部类的常见类型
1.成员内部类
2.局部内部类
3.匿名内部类
4.静态内部类
简单示例
/*** 外部类* */
public class OuterClass {private String s = "private String from OuterClass";private String fs = "final String from OuterClass";/*** 成员内部类,字面上理解就是外部类的一部分。类似外部类的属性或方法* 外部类的属性和方法对于内部类都是可以访问的,包括private属性方法* 调用方法 外部类名。this。属性或方法*/class PartnerClass{public void print(){System.out.println("this comes from PartnerClass and can get "+OuterClass.this.s);OuterClass.this.print();}}private void print(){System.out.println("private method form OuterClass");/*** 局部内部类只可以在一定范围内被访问*/class Part{void print(){System.out.println("this comes from part class and can get "+ OuterClass.this.s);}}new Part().print();}interface Anonymous{void print();}/*** 匿名内部类多为已经定义好的接口或抽象类,在需要使用的地方采取进行具体实现* 同成员内部类类似*/Anonymous anyms = new Anonymous() {@Overridepublic void print() {System.out.println("this comes from a anonymous class and can get "+OuterClass.this.fs);OuterClass.this.print();}};/*** 静态内部类只能访问外部类的静态属性和方法* 静态内部类可以通过new OuterClass。StaticClass()的方式创建静态内部类对象*/private static class StaticClass implements Anonymous{@Overridepublic void print() {System.out.println("this comes from static inner class");}}public static void main(String[] args) {OuterClass outer = new OuterClass();/*** 外部类可以创建获取内部类对象* 创建方法为 new 外部类().new 内部类()*/outer.new PartnerClass().print();outer.anyms.print();StaticClass sc = new OuterClass.StaticClass();sc.print();}}
内部类有什么用处?
1.隐藏类名和具体实现细节
2.内部类可以访问外部类的属性和方法
3.内部类可以用来实现闭包和回调
4.内部类可以用来实现多重继承
5.封装数据进行传值
个人内部类使用经验不多,以后有用到会补充进来
转载于:https://www.cnblogs.com/ssp2110/p/3797681.html
java基础 内部类详解相关推荐
- Java基础---内部类详解
内部类 概念:定义在类内部的类,可以在类中方法外,也可以在类中方法中根据定义位置的不同,分为成员内部类和局部内部类成员内部类又划分为: 普通的成员内部类 静态的成员内部类 私有的成员内部类另外还有匿名 ...
- java基础(十三)-----详解内部类——Java高级开发必须懂的
java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...
- Java基础——匿名内部类详解及举例
Java基础--匿名内部类详解及举例 说明:定义在外部类的局部位置,比如方法中,并且没有类名 匿名内部类的使用 匿名内部类的基本语法 new 类或接口(参数列表){类体 }; 用途:有些时候为了简化开 ...
- Java修炼——内部类详解
内部类详解 定义:将一个类定义在另一个类的内部,该类就称为内部类 类中定义的内部类特点: 内部类作为外部类的成员,可以直接访问外部类的成员 (包括 private 成员),反之则不行. 内部类做为外部 ...
- Java基础:详解static关键字与类加载顺序
1. 前言 前文中说到了static关键字,在Java中这是一个很重要的关键字,它有很多的用法,并且在某些特定的情况下使用可以优化程序的性能.本文学习static关键字的应用场景.在这之前了解变量的类 ...
- JAVA基础——异常详解
阅读目录 一.异常简介 二.try-catch-finally语句 三.throw和throws关键字 四.java中的异常链 五.结束语 JAVA异常与异常处理详解 回到顶部 一.异常简介 什么是异 ...
- Java基础知识详解
一.基础 1.Java都有哪些数据类型?基本数据类型有哪些?分别占多少字节?多少位?引用数据类型又有哪些? Java的数据类型:基本数据类型和引用数据类型 基本数据类型:byte(1),short(2 ...
- Java的内部类详解(成员内部类、静态内部类、局部内部类、匿名内部类)
Java知识点总结:想看的可以从这里进入 目录 2.2.4. 内部类 1.成员内部类 2.静态内部类 3.局部内部类 4.匿名内部类 2.2.4. 内部类 一个类定义在另一个类内,那么这个类就是一个内 ...
- Java基础--awt详解以及简单应用
GUI 图形用户界面 CLI 命令行用户接口 Java为GUI提供的对象存在java.Awt和Javax.Swing两个包中. Java当中如何完成图形化界面的制作呢? AWT:abstract Wi ...
- Java基础——IO详解
文章目录 前言 一.IO概述 1.IO体系图 2.IO概念及基本操作 二.IO--字节流 InputStream(字节输入流) 1.FileInputStream 2.BuffedInputStrea ...
最新文章
- JVM结构、GC工作机制详解
- Codeforces 1336E Chiori and Doll Picking (子集和变换、线性基、阈值算法、状压 DP、组合计数)...
- ajax长链接--拉实现
- 雷军:互联网思维本质上就是群众路线
- vs设计窗口不见了_龙猫腕表评测:VS沛纳海320V2版本
- 1、数列求值 - 2019年第十届蓝桥杯大赛软件类省赛
- 使用AD14创建异形PCB板
- 目前比较流行的网站开发框架有哪些?
- 软考信息系统项目管理师考试心得-备考
- 主机访问虚拟机Web服务器
- linux 安装mantis,在Ubuntu 18.04系统上安装Mantis Bug Tracker[MantisBT]
- HTTP和HTTPS、GET和POST
- 安卓手机软件开发_这款安卓神器,让你下片更轻松!千万别滥用
- 非常详细的FastDFS整合springBoot教程-带文件下载地址
- 点菜系统中的命令模式
- python摄像头动作捕捉_新版的IphoneX是一台动作捕捉设备,你知道怎么玩吗
- 使用老毛桃U盘给联想G400装系统
- 项目管理工程师岗位职责
- Excel怎么转换为Word文档?分享一种快速转换方法
- 【spine】快速入门