1.17 局部内部类
局部内部类是指在一个方法中定义的内部类
。示例代码如下:
public class Test {public void method() {class Inner {// 局部内部类}}
}
局部内部类有如下特点:
- 局部内部类与局部变量一样,不能使用访问控制修饰符(public、private 和 protected)和 static 修饰符修饰。
- 局部内部类只在当前方法中有效。
public class Test {Inner i = new Inner(); // 编译出错Test.Inner ti = new Test.Inner(); // 编译出错Test.Inner ti2 = new Test().new Inner(); // 编译出错public void method() {class Inner{}Inner i = new Inner();}
}
- 局部内部类中不能定义 static 成员。
- 局部内部类中还可以包含内部类,但是这些内部类也不能使用访问控制修饰符(public、private 和 protected)和static 修饰符修饰。
- 在局部内部类中可以访问外部类的所有成员。
- 在局部内部类中只可以访问当前方法中 final 类型的参数与变量。如果方法中的成员与外部类中的成员同名,则可以使用
<OuterClassName>.this.<MemberName>
的形式访问外部类中的成员。
public class Test {int a = 0;int d = 0;public void method() {int b = 0;final int c = 0;final int d = 10;class Inner {int a2 = a; // 访问外部类中的成员// int b2 = b; // 编译出错int c2 = c; // 访问方法中的成员int d2 = d; // 访问方法中的成员int d3 = Test.this.d; //访问外部类中的成员}Inner i = new Inner();System.out.println(i.d2); // 输出10System.out.println(i.d3); // 输出0}public static void main(String[] args) {Test t = new Test();t.method();}
}
1.17 局部内部类相关推荐
- 局部内部类和匿名内部类的对比
创建内部类的典型的方式是在一个方法体的里面创建,局部内部类不能有访问说明符,因为它不是外围类的一部分,但是它可以访问当前代码块内的常量,以及此外围类的所有成员.下面的例子对局部内部类与匿名内部类的创建 ...
- java 局部内部类的理解
局部内部类: 局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内 例如: //外部类public static class Man { ...
- 局部内部类访问方法中的局部变量为什么加final
1)从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的 ...
- 为什么局部内部类和匿名内部类只能访问 final 的局部变量?
首先,我们看一个局部内部类的例子: class OutClass {private int age = 12;public void outPrint(final int x) {class InCl ...
- java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...
1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的 ...
- 局部内部类访问它所在方法中的局部变量必须是final
https://www.cnblogs.com/oldpub-blog/p/9026824.html https://blog.csdn.net/whuslei/article/details/625 ...
- 第三次学JAVA再学不好就吃翔(part43)--局部内部类访问局部变量
学习笔记,仅供参考 面向对象 局部内部类访问局部变量 啥叫局部内部类? 局部内部类是指在方法中定义的内部类. 举个例子(访问局部内部类) 局部内部类: class InnerTest1 {public ...
- java局部内部类 final_Java的局部内部类以及final类型的参数和变量
Thinking In Java里面的说法(***正确的说法): 如果定义一个匿名内部类,并且希望它使用一个在其外部定的对象,那么编译器会要求其参数引用是final 的.publicclassTest ...
- JAVA入门级教学之(局部内部类)
package com.lbj.javase21; /** * 局部内部类等同于局部变量 * * 重点:局部内部类在访问局部变量的时候,局部变量必须使用final修饰,据说在J ...
最新文章
- 干掉Navicat:这个IDEA的兄弟真香!
- 知乎好物推荐设计与实现
- 搭建LoadRunner中的场景(三)场景的执行计划
- java 抽象类继承抽象类_Java之继承、抽象类、接口篇
- POJ2263 ZOJ 1952
- 英语语法---前言及索引
- 在WPF的WebBrowser控件中抑制脚本错误
- vscode 新版eslint自动修复_VSCODE 配置eslint规则和自动修复
- beginnersbook 数据库教程
- .net core 部署在Linux系统上运行的环境搭建
- Android 多个listview的实现
- php formdata 解析,系统学习前端之FormData详解
- 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾(四)
- 几种ARM编译器及IDE开发环境
- Android桌面插件系列
- 计算机格式为gpt怎么更改,硬盘格式转换,手把手教你如何将硬盘mbr格式转换为gpt格式...
- android看黑白电子书软件,如何优雅解决App启动黑白屏
- php/nginx重启命令
- seastar介绍及源码分析
- 并查集解决朋友圈问题
热门文章
- Dataset之谷歌地图数据集:谷歌地图数据集的简介、安装、使用方法之详细攻略
- 盘点selenium phantomJS使用的坑
- About The FTP
- python+requests+re匹配抓取猫眼上映电影信息
- Chargen DoS攻击
- iOS Storyboard unwind segues使用小结
- STM32 容易烧成电源短路解决方法
- Boost Asio总结(15)class basic_stream_socket
- C++ Primer 5th笔记(chap 16 模板和泛型编程)定义
- 计算理论2--可计算理论