java内部类
内部类定义:将一个类的定义放在另一个类内部,这就是内部类,内部类控制了类的可视性,在某种程度上说,内部类隐藏了代码,将不希望被外部调用的代码隐藏起来了。往大的方向分,内部类可以分为匿名内部类和嵌套内部类。
内部类可以通过this访问外部类,外部类调用内部类通过new的方式来访问。
1.匿名内部类
@定义接口
public interface Destination {
String readLabel();
}
public class Parcel01 {
public Destination destination(String s) {
@内部类
class PDestination implements Destination {
private String label;
private PDestination(String whereTo) {
label = whereTo;
}
public String readLabel() {
return label;
}
}
return new PDestination(s);
}
public static void main(String[] args) {
Parcel01 p01 = new Parcel01();
Destination d = p01.destination("hello python");
System.out.println(d.readLabel());
}
}
2.嵌套内部类
public class Parcel05 {
public static class SubDestination implements Destination {
public String readLabel() {
return "hello,python!";
}
}
public static Destination getDestination() {
return new SubDestination();
}
public static void main(String[] args) {
Destination d=getDestination();
System.out.println(d.readLabel());
}
}