//非static的情况下:外部类的权限声明作用于外部类的外部的类,外部类的成员和内部类(除内部类中的private类)是available
//在外部类的static方法中,创建非静态内部类前,要先创建(会被用到的)外部类对象。
package test3;
interface Address{ //要求实现一个接口,里面有一个方法
String ShowAddress(); //多种show
}
public class test3 {
private class DGAddress implements Address{ //不公开这个实现接口的内部类
String addrName = "Default"; //暗箱
public String ShowAddress() { //定义接口里的方法
return addrName;
}
}
public Address getAddress(){ //公开能得到接口类的实例的方法
return new DGAddress();
}
public static void main(String[] args) {
test3 test = new test3(); //建一个实例,为下一步提供方法
Address addr = test.getAddress(); //得到接口类的实例addr。其实发生向上转型(方法返回的对象的引用赋值给接口类的引用),即实际包含更多信息
System.out.println(addr.ShowAddress()); //能用接口调用实例addr里的方法
}
}
/*
package test3;
interface Address{
String ShowAddress();
}
public class test3 {
private String addrName = "Default";
public Address getAddress(){ //公开能得到接口类的实例的方法
return new Address(){ //实例化一个接口类(临时定义这个类(变量+方法)+初始化),用法:匿名·内部类
public String ShowAddress() {
return addrName; //接口类的方法 返回 本次test3对象里的变量的引用
}
{} //用于初始化,可省略
};
}
public static void main(String[] args) {
test3 test = new test3();
Address addr = test.getAddress();
System.out.println(addr.ShowAddress());
}
}
Java内部类基础
最新推荐文章于 2024-05-05 13:57:09 发布