第9章 管理类别档案 内部类别 package simport
第9章 • 管理类别档案 – 内部类别 – package与import
成员内部类别、区域内部类别 成员内部类别,基本上是在一个类别中直 接宣告另一个类别 public class outerclass i //内部类别 private class InnerClass i // 所产生的文件名为「外部类别名称$内部类 别名称cass
成员内部类别、区域内部类别 • 成员内部类别,基本上是在一个类别中直 接宣告另一个类别 • 所产生的文件名为「外部类别名称$内部类 别名称.class」 public class OuterClass { //内部类别 private class InnerClass { // .... } }
成员内部类别、区域内部类别 区域内部类别定义于一个方法中,类别的 可视范围与生成之对象仅止于该方法之中 内部类别还可以被宣告为" static“ 由于是“ static”,它不能存取外部类别的方 法,而必须透过外部类别所生成的对象来 进行呼叫
成员内部类别、区域内部类别 • 区域内部类别定义于一个方法中,类别的 可视范围与生成之对象仅止于该方法之中 • 内部类别还可以被宣告为"static“ • 由于是“static”,它不能存取外部类别的方 法,而必须透过外部类别所生成的对象来 进行呼叫
成员内部类别、区域内部类别 被宣告为 static的内部类别,事实上也可以 看作是另一种名称空间的管理方式 public class outer public static class Inner i Outer Inner inner new Outer Inner(
成员内部类别、区域内部类别 • 被宣告为static的内部类别,事实上也可以 看作是另一种名称空间的管理方式 public class Outer { public static class Inner { .... } .... } Outer.Inner inner = new Outer.Inner();
匿名内部类别 内部匿名类别可以是继承某个类别或是实 作某个接口 new[类别或接口()]{ //实作 Object obj new Object() i public string tostring()(//重新定义 tostring() return"匿名类别物件" System. out. println(obj)
匿名内部类别 • 内部匿名类别可以是继承某个类别或是实 作某个接口 new[类别或接口()] { //实作 } Object obj = new Object() { public String toString() { //重新定义toString() return"匿名类别物件"; } }; System.out.println(obj);