内部类三连击:

《内部类详解————匿名内部类》

《内部类详解————局部内部类》

《内部类详解————静态嵌套类》

定义

方法或某个作用域内的内部类,称为局部内部类。匿名内部类就是一种局部内部类。

实现方式

public class OutterType {   public void function() {/** 局部内部类Inner*/class Inner {public void print() {System.out.println("局部内部类...");}}}
}

规则

规则一:局部内部类类似方法的局部变量,所以在类外或者类的其他方法中不能访问这个内部类,但这并不代表局部内部类的实例和定义了它的方法中的局部变量具有相同的生命周期。

注意,如果是定义在一个作用域内的局部内部类,如下的形式:

我们将局部内部类In定义在了一个if条件作用域中,因此,在if之外的部分,尽管没有离开function()方法,就会报编译错误,无法访问到In这个内部类,因此,还是需要广义的理解局部内部类的含义和访问条件,不可片面的理解为仅仅是方法中定义的内部类。

规则二:只能在方法内部,类(局部内部类)定义之后使用,不存在外部可见性问题,因此没有访问修饰符。

规则三:不能在局部内部类中使用可变的局部变量。

规则四:可以访问外围类的成员变量。如果是static方法,则只能访问static修饰的成员变量。

规则五:可以使用final 或 abstract修饰。

综上,就是局部内部类的知识,其实局部内部类的名气远没有匿名内部类的名气大,但是作为一个匿名内部类的父概念,其定义了匿名内部类和普通的局部内部类的概念和特性,因此可以作为匿名内部类的知识补充。

如有疑问,欢迎文末留言。

内部类详解————局部内部类相关推荐

  1. 内部类详解————静态内部类

    内部类三连击: <内部类详解----匿名内部类> <内部类详解----局部内部类> <内部类详解----静态内部类> 定义 静态内部类,又叫静态嵌套类或嵌套类.是使 ...

  2. 内部类详解————匿名内部类

    内部类三连击: <内部类详解----匿名内部类> <内部类详解----局部内部类> <内部类详解----静态嵌套类> 应用场景 由于匿名内部类不利于代码的重用,因此 ...

  3. java内部格式_详解java内部类的访问格式和规则

    详解java内部类的访问格式和规则 1.内部类的定义 定义一个类来描述事物,但是这个事物其中可能还有事物,这时候在类中再定义类来描述. 2.内部类访问规则 ①内部类可以直接访问外部类中的成员,包括私有 ...

  4. [转] Java内部类详解

    作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...

  5. Java修炼——内部类详解

    内部类详解 定义:将一个类定义在另一个类的内部,该类就称为内部类 类中定义的内部类特点: 内部类作为外部类的成员,可以直接访问外部类的成员 (包括 private 成员),反之则不行. 内部类做为外部 ...

  6. 内部类(四种内部类详解)

    == = = = = = = 内部类(四种内部类详解)= = = = = = = == 一.基本介绍:一个类的内部又完整的嵌套了另一个类结构.被嵌套的类称为内部类(inner class),嵌套其他类 ...

  7. java类修饰词和内部类详解

    java类修饰词和内部类详解 控制属性: 同一类内     同一包内      子类     所有类 public            可             可         可       ...

  8. 接口与继承系列教材 (十)- Java 内部类详解

    接口与继承系列教材 (十)- Java 内部类详解 内部类分为四种: 非静态内部类 静态内部类 匿名类 本地类 步骤1:非静态内部类 步骤2:静态内部类 步骤3:匿名类 步骤4:本地类 步骤5:在匿名 ...

  9. Java基础篇:内部类详解

    目录: 一.内部类的好处: 二.成员内部类: 三.局部内部类: 四.静态内部类: 五.匿名内部类: 六.总结: 内部类:可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个编译时概念 ...

最新文章

  1. NodeAsp——像开发NodeJS应用一样玩转ASP
  2. python2 中使用pip2 install package_name的时候报错:AttributeError: ‘int‘ object has no attribute ‘endswith‘
  3. 移动前端开发之viewport,devicePixelRatio的深入理解
  4. Python协同过滤推荐算法(Collaborative Filtering)1.概念和思想以及大致步骤
  5. raw_input() 与 input() __ Python
  6. IDEA中导入支付宝电脑网站支付测试Demo遇到的错误
  7. fastjson解析JSON数据乱序导致的问题
  8. 与ceph的区别_Ceph分布式存储高性能设计
  9. 网络编程套接字Socket
  10. POI 导出导入工具类介绍
  11. JAVA多线程--线程的同步安全
  12. DnsFookup:一款功能强大的DNS重绑定工具
  13. 攻防世界 Web_php_include write up
  14. 跟着杨中科学习asp.net之html
  15. 人工智能的认知技术,主要包含哪些?
  16. 计算机系统时间无法更改,电脑时间改不了怎么办|电脑时间无法修改的解决方法...
  17. FigDraw 8. SCI 文章绘图之饼图 (Pieplot)
  18. Windows 7精简版(2019.04.10)
  19. Android 11.0 修改添加的默认文件夹为9宫格样式
  20. Android+上百实例源码分析以及开源分析+集合打包

热门文章

  1. 厉害了,Spring中bean的12种定义方法!
  2. javascript数组去重方法汇总
  3. 51单片机 16*64LED单红点阵屏驱动测试,上位机改字软件免费版
  4. docker 创建容器报: Error response from daemon: C: drive is not shared.
  5. Java-IO-对接流
  6. EF中DB First模式下数据库中表结构变化时如何快速同步到EF模型中
  7. 对可重入锁和不可重入锁的理解
  8. linux vnc 改端口号,基于Linux中vnc配置端口号的修改方法
  9. 计算机数据库原理试题,计算机科学与技术专业《数据库原理》模拟试题(B)
  10. matlab启动不了jvm,MATLAB ::在-nojvm启动选项下不再支持此功能