内部类

今天我们学习下什么叫做“累不累”,不对什么叫内部类,内部类和外部类有啥区别,内部类有包括些什么知识点呢?

内部类的分类

  1. 成员内部类
    成员内部类包括:非静态内部类、静态内部类
    成员内部类可用private、default、public、protected修饰
  2. 匿名内部类
  3. 局部内部类(当然现在很少被使用到)

非静态内部类

  1. 必须寄存在一个外部类对象中,如果有一个非静态内部类对象,那么一定会存在相应的外部类对象,非静态内部类对象单独属于外部类的某个对象。
  2. 非静态内部类可直接访问外部类成员,但是外部类不可以直接访问非静态内部类成员。
  3. 非静态内部类不可以有静态方法、静态属性、静态初始化块。
  4. 外部类的静态方法、静态代码块不能访问非静态内部类,包括不能使用非静态内部类定义变量、创建实例
  5. 成员变量访问要点:
    ①内部类中方法的局部变量:变量名
    ②内部类属性:this.变量名
    ③外部类属性:外部类名.this.变量名
    那么,如果我们要在main函数中调用内部类,那么我们需要进行 (Outer.Inner inner = new Other().new Inner(); )

静态内部类

  1. 定义方法
static class ClassName{//类体
}
  1. 使用要点
    ①当一个静态内部类对象存在,并不一定存在对应的外部类对象。静态内部类的实例方法不可以直接访问外部类的实例方法。
    ②静态内部类看作是外部类的一个静态成员。外部类的方法中可通过:“静态内部类.名字”的方式访问静态内部类的静态成员,通过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九阳神功-内部类相关推荐

  1. 基础知识真的是九阳神功吗?

    有不少读者咨询过基础知识相关的问题. 有问怎么能够学好基础知识,有问基础知识到底有什么用,也有直接过来喷我,说工作只有CRUD,基础知识就是忽悠. 当然,也有一种论调说,基础知识就像是编程中的九阳神功 ...

  2. 编程基础知识真的是九阳神功吗?

    作者|大飞码字 来源|大飞码字(ID:BigFly1024) 有不少读者咨询过基础知识相关的问题. 有问怎么能够学好基础知识,有问基础知识到底有什么用,也有直接过来喷我,说工作只有CRUD,基础知识就 ...

  3. java 为什么有匿名类_全面了解Java中的内部类和匿名类

    Java内部类(Inner Class),类似的概念在C++里也有,那就是嵌套类(Nested Class),乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了 ...

  4. Java学习笔记二十:Java中的内部类

    Java中的内部类 一:什么是内部类: (1).什么是内部类呢? 内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. (2).那为什么要将一个类定 ...

  5. Java Inner Class 内部类

    内部类  Inner Class 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分. Java中的内部类共分为四种: 静态内部类static inner class ( ...

  6. Java核心类库——内部类那点事儿

    内部类 ---定义在类的内部的类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象.所以你可以认为内部类提供了某种进入其外围类的窗口. java ...

  7. DBA一族九阳神功秘籍

    标签 PostgreSQL , 节假日巡检 , 监控 , 闪回 , flash back query , trigger , event trigger , 回收站 , recycle bin , p ...

  8. 自学java 第十章内部类(一)

    今天学习了一部分java中的内部类. 内部类指将一个类的定义放在另一个类的内部,那它就是一个内部类. 指明一个引用时内部类的类型可以通过"外部类名.内部类名"的写法声明,如果想返回 ...

  9. Java Nested Classes(内部类~第一篇英文技术文档翻译)

    鄙人最近尝试着翻译了自己的第一篇英文技术文档. Java Nested Classes Reference From Oracle Documentation 嵌套类-Nested Classes 在 ...

  10. 【CSAPP+电流+梯度下降法】九阳神功-速览1

    计算机如何开始工作? 电流 梯度下降法 方向导数与梯度 九阳神功-内功 intel X86 第二章 信息的表示和处理 无符号数 补码 浮点数 字节编址 intel 小端 低有效位放低地址------- ...

最新文章

  1. TextView使用实例
  2. 计算机视觉编程——图像内容分类
  3. ashx误删后,未能创建类型
  4. 第一篇文章,,测试效果,
  5. 杂谈——杭州考驾照历程
  6. OpenGL的glScissor示例程序
  7. FineReport实现java报表统计图表的效果图
  8. pythonself用法_全面理解python中self的用法
  9. 微软对 Windows 10 Mobile 的支持将于12月10日结束
  10. 简单易懂源码解析字符串拼接
  11. python语言-Python语言的一些基本常用语句
  12. compositionAPI
  13. 阅读分享——李开复老师《开工愉快:如何保持每天精力充沛》
  14. 游戏开发毛星云离世,他一直有个梦想:国产游戏能领跑世界
  15. 首款Unreal Engine 4引擎制作手机游戏曝光
  16. C++的学习心得和知识总结(十八)|基于EasyX实现 2048游戏 项目(C/C++版)
  17. 【金融风控-贷款违约预测】数据挖掘学习:5.模型融合
  18. 打印一年内任意月份的日历(C语言)
  19. intel dpdk api rte_eal_hpet_init() 函数介绍
  20. OpenCV3中 HOGDescriptor 参数详解

热门文章

  1. 虚拟机主机服务器出现SSH已启用,ESXi去掉 SSH已经启用的警告信息
  2. DEDECMS 留言薄模块的使用方法
  3. Windows 11 21H2正式版镜像
  4. 桌面被关闭,如何在任务管理器中打开桌面?
  5. 求大神帮助 百练我爱北大,编程题目
  6. latex normal是几号字_Latex之字体 | 学步园
  7. 速达开发版ERP移动端 App 操作使用说明
  8. 2017世界GDP排行地图可视化
  9. 新辰:台北90后创业炸鸡配啤酒 来自星星的你 不成功也难
  10. 华为交换机ntp自动校时配置