这一章节我们来聊一下在方法和作用域里的内部类。
1.为什么需要在方法和作用域里的内部类?
(1)隐藏代码。
(2)处理复杂的问题,需要辅助类。
package com.ray.ch10;
public class Test {
{
class PDestination {
}
}
public Destination test() {
class PDestination implements Destination {
private String target = "abc";
@Override
public String read() {
return target;
}
}
return new PDestination();
}
public static void main(String[] args) {
}
}
interface Destination {
String read();
}
上面的代码就是在方法里面加上一个类来辅助这个方法。
2.特性
(1)可以放在代码里面的任意地方。
package com.ray.ch10;
public class Test {
{
class PDestination {
}
}
public Destination test() {
Destination destination = null;
if (true) {
class PDestination implements Destination {
private String target = "abc";
@Override
public String read() {
return target;
}
}
destination = new PDestination();
}
return destination;
}
public static void main(String[] args) {
}
}
interface Destination {
String read();
}
我们修改一下上面的代码,把class放到了if里面去,只有某些条件成立,才执行class里面的东西。
(2)在方法或者作用域这些地方放置类,是不影响外部类的命名。
从上面的代码可以看见,在代码块里面和方法里面的类的名称都是相同的,大家之间毫不影响。
因为PDestination都只是在各自的作用域里面起作用。到了外部,就没有这个类了。
(3)更加能够隐藏代码的实现。
在方法或者作用域里面,只能是里面的代码能够读取或者执行这个内部类,其他所有的地方都不可以。
总结:这一章节主要讲述了为什么需要在方法和作用域里的内部类,和这些内部类的一些特性。
这一章节就到这里,谢谢。
-----------------------------------