难度
初级
学习时间
30分钟
适合人群
零基础
开发语言
java
开发环境
- JDK v11
- IntelliJ IDEA v2018.3
提示
本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。
1.局部内部类
在任何作用域中定义的类都称之为局部内部类。
演示:
局部内部类。
代码:
2. 作用域内访问局部内部类成员
我们来试试如何在作用域内访问到局部内部类成员。
演示:
请在Main类中定义一个局部内部类People并在其内部定义一个实例变量、实例方法、常量、最终方法和静态常量。
在main()方法中(作用域内)访问局部内部类People中的成员。
请观察程序运行结果。
代码:
Main类:
结果:
错误信息:
文字版:
从运行结果来看,我们的程序出现了错误。接下来一步一步来分析。
首先,我们先来局部内部类里面定义的成员有哪些:
定义了实例变量、实例方法、常量、最终方法和静态常量。
再来往下看:
直接开始访问局部内部类里面的成员。
首先访问的是局部内部类里面的实例变量:
此次执行的结果是:
找不到一个叫anIntValue的变量,说明不能直接访问局部内部类里面实例变量。
接下来,我们再往下执行:
此次执行的是直接访问局部内部类中的常量,执行结果是:
和之前错误原因一样,不能直接访问局部内部类中的常量。
继续往下执行:
此次执行的是直接访问局部内部类中的静态常量。执行结果是:
错误原因是不能直接访问局部内部类中的静态常量。但是,我们可以通过局部内部类类名直接访问到静态常量,这个在下一小节中讲解到。
继续往下执行:
此次执行的是直接访问局部内部类中的实例方法。执行结果是:
错误原因是不能直接访问局部内部类中实例变量。
继续往下执行:
此次执行的是直接访问局部内部类中的最终方法,执行结果是:
错误原因是不能直接访问局部内部类中的最终方法。
至此,程序执行完毕!
那么有没有一种方法可以访问到局部内部类中的成员呢?
有,那就是创建局部内部类对象,通过局部内部类对象访问到其中的成员。我们来试试。
3.通过局部内部类对象访问其中成员
演示:
请在Main类中定义一个局部内部类People并在其内部定义一个实例变量、实例方法、常量、最终方法和静态常量。
在main()方法中(作用域内)创建局部内部类People对象,然后通过其对象访问局部内部类People中的成员。
请观察程序运行结果。
代码:
Main类:
结果:
从运行结果来看,我们可以通过局部内部类对象直接访问到其成员。
4.通过局部内部类类名访问其静态常量
演示:
请在Main类中定义一个局部内部类People并在其内部定义一个静态常量。
在main()方法中(作用域内)通过局部内部类类名访问局部内部类People中的静态常量。
请观察程序运行结果。
代码:
Main类:
结果:
从运行结果来看,局部内部类中的静态常量可以直接通过其类名直接访问到。
总结
- 作用域内不能直接访问局部内部类中的成员。
- 作用域内要想访问到局部内部类里面的成员,必须先创建其局部内部类对象,然后再通过局部内部类对象对其成员进行访问。
- 局部内部类中的静态常量可以直接通过局部内部类类名访问。
至此,Java中作用域内访问局部内部类成员相关内容讲解先告一段落,更多内容请持续关注。
附:类学习资料
附: 抽象类 学习资料
附:接口学习资料
答疑
如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。
上一章
下一章
“全栈2019”Java第九十八章:局部内部类访问作用域成员详解
学习小组
加入同步学习小组,共同交流与进步。
- 方式一:关注头条号Gorhaf,私信“Java学习小组”。
- 方式二:关注公众号Gorhaf,回复“Java学习小组”。
全栈工程师学习计划
关注我们,加入“全栈工程师学习计划”。
版权声明
原创不易,未经允许不得转载!