Java九阳神功-内部类
内部类
今天我们学习下什么叫做“累不累”,不对什么叫内部类,内部类和外部类有啥区别,内部类有包括些什么知识点呢?
内部类的分类
- 成员内部类
成员内部类包括:非静态内部类、静态内部类
成员内部类可用private、default、public、protected修饰 - 匿名内部类
- 局部内部类(当然现在很少被使用到)
非静态内部类
- 必须寄存在一个外部类对象中,如果有一个非静态内部类对象,那么一定会存在相应的外部类对象,非静态内部类对象单独属于外部类的某个对象。
- 非静态内部类可直接访问外部类成员,但是外部类不可以直接访问非静态内部类成员。
- 非静态内部类不可以有静态方法、静态属性、静态初始化块。
- 外部类的静态方法、静态代码块不能访问非静态内部类,包括不能使用非静态内部类定义变量、创建实例
- 成员变量访问要点:
①内部类中方法的局部变量:变量名
②内部类属性:this.变量名
③外部类属性:外部类名.this.变量名
那么,如果我们要在main函数中调用内部类,那么我们需要进行 (Outer.Inner inner = new Other().new Inner(); )
静态内部类
- 定义方法
static class ClassName{//类体
}
- 使用要点
①当一个静态内部类对象存在,并不一定存在对应的外部类对象。静态内部类的实例方法不可以直接访问外部类的实例方法。
②静态内部类看作是外部类的一个静态成员。外部类的方法中可通过:“静态内部类.名字”的方式访问静态内部类的静态成员,通过new静态内部类()访问静态内部类的实例。
匿名内部类
适合那种只用一次的类(比如键盘监听):
grammer:
new 父类构造器(实参类表)\实现接口(){//匿名内部类类体
}
局部内部类(作用域只限于本方法)
主要用于解决比较复杂的问题,想创建一个类来辅助我们的解决方案,到那时又不希望这个类是公共可用的,所以产生了局部内类。局部内部类与成员内部类一样被编译,只是它的作用域发生了改变,他只能在该方法中被使用,除了该方法就会失效。
public void show(){class Inner{public void fun(){System.out.println("hello world");}new Inner().fun();}
}
package JavaClass;public class MyInnerClass {public static void main(String[] args) {Outer.Inner inner = new Outer().new Inner();inner.show();}
}class Outer{private int age = 22;public void testOuter() {}class Inner{int age = 23;public void show() {int age = 110;System.out.println("外部类的成员变量age为:" + Outer.this.age);System.out.println("内部类的成员变量age为:" + this.age);System.out.println("局部变量age为:" + age);}}}
以上就是我学习的内部类的一些心得,欢迎批评指正。
Java九阳神功-内部类相关推荐
- 基础知识真的是九阳神功吗?
有不少读者咨询过基础知识相关的问题. 有问怎么能够学好基础知识,有问基础知识到底有什么用,也有直接过来喷我,说工作只有CRUD,基础知识就是忽悠. 当然,也有一种论调说,基础知识就像是编程中的九阳神功 ...
- 编程基础知识真的是九阳神功吗?
作者|大飞码字 来源|大飞码字(ID:BigFly1024) 有不少读者咨询过基础知识相关的问题. 有问怎么能够学好基础知识,有问基础知识到底有什么用,也有直接过来喷我,说工作只有CRUD,基础知识就 ...
- java 为什么有匿名类_全面了解Java中的内部类和匿名类
Java内部类(Inner Class),类似的概念在C++里也有,那就是嵌套类(Nested Class),乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了 ...
- Java学习笔记二十:Java中的内部类
Java中的内部类 一:什么是内部类: (1).什么是内部类呢? 内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. (2).那为什么要将一个类定 ...
- Java Inner Class 内部类
内部类 Inner Class 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分. Java中的内部类共分为四种: 静态内部类static inner class ( ...
- Java核心类库——内部类那点事儿
内部类 ---定义在类的内部的类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象.所以你可以认为内部类提供了某种进入其外围类的窗口. java ...
- DBA一族九阳神功秘籍
标签 PostgreSQL , 节假日巡检 , 监控 , 闪回 , flash back query , trigger , event trigger , 回收站 , recycle bin , p ...
- 自学java 第十章内部类(一)
今天学习了一部分java中的内部类. 内部类指将一个类的定义放在另一个类的内部,那它就是一个内部类. 指明一个引用时内部类的类型可以通过"外部类名.内部类名"的写法声明,如果想返回 ...
- Java Nested Classes(内部类~第一篇英文技术文档翻译)
鄙人最近尝试着翻译了自己的第一篇英文技术文档. Java Nested Classes Reference From Oracle Documentation 嵌套类-Nested Classes 在 ...
- 【CSAPP+电流+梯度下降法】九阳神功-速览1
计算机如何开始工作? 电流 梯度下降法 方向导数与梯度 九阳神功-内功 intel X86 第二章 信息的表示和处理 无符号数 补码 浮点数 字节编址 intel 小端 低有效位放低地址------- ...
最新文章
- TextView使用实例
- 计算机视觉编程——图像内容分类
- ashx误删后,未能创建类型
- 第一篇文章,,测试效果,
- 杂谈——杭州考驾照历程
- OpenGL的glScissor示例程序
- FineReport实现java报表统计图表的效果图
- pythonself用法_全面理解python中self的用法
- 微软对 Windows 10 Mobile 的支持将于12月10日结束
- 简单易懂源码解析字符串拼接
- python语言-Python语言的一些基本常用语句
- compositionAPI
- 阅读分享——李开复老师《开工愉快:如何保持每天精力充沛》
- 游戏开发毛星云离世,他一直有个梦想:国产游戏能领跑世界
- 首款Unreal Engine 4引擎制作手机游戏曝光
- C++的学习心得和知识总结(十八)|基于EasyX实现 2048游戏 项目(C/C++版)
- 【金融风控-贷款违约预测】数据挖掘学习:5.模型融合
- 打印一年内任意月份的日历(C语言)
- intel dpdk api rte_eal_hpet_init() 函数介绍
- OpenCV3中 HOGDescriptor 参数详解