InnerClass(一)
InnerClass(1)
一 介绍
内部类的作用:1、多继承.2、增强代码的隐私性,达到完整的封装性.3、闭包与回调.
内部类的分类:1、从作用域的角度可以存在于类中,也可以存在于方法或作用域中.
-2、从命名方式有匿名内部类.
二 实例
简单的内部类:
如上代码可以通过以下方式获取
三 衍生
作用域的内部类: 达到了内部类的隐蔽性,只有在作用域内能够访问
待续......................
一 介绍
内部类的作用:1、多继承.2、增强代码的隐私性,达到完整的封装性.3、闭包与回调.
内部类的分类:1、从作用域的角度可以存在于类中,也可以存在于方法或作用域中.
-2、从命名方式有匿名内部类.
二 实例
简单的内部类:
public class fristinnerclass { //...................inner class begin; //inner class a class contents{ private int i = 11; public int value(){return i;} } //inner class b class destination{ private string label; destination(string label){ this.label = label; } string readlabel(){return label;} } //...................inner class end; //得到内部类的句柄 public destination to(string s){ return new destination(s); } public contents contents(){ return new contents(); } //using inner classes looks just like //using any other class , within fristinnerclass public void ship(string dest){ contents c = new contents(); destination d = new destination(dest); system.out.println(d.readlabel() + "\n" + c.value()); } public static void main(string[] args) { fristinnerclass p = new fristinnerclass(); p.ship("tasmania"); //注意声明内部类时的语法 fristinnerclass.destination d = p.to("tasmania"); fristinnerclass.contents c = p.contents(); system.out.println(d.readlabel()); system.out.println(c.value()); }}这是基本的内部类的获得方式,还可以通过.new从外部类获得内部类的应用
如上代码可以通过以下方式获取
fristinnerclass.destination d1 = p.new destination("tasmania"); fristinnerclass.contents c1 = p.new contents();通过.this的方式可以在内部类中得到当前外部类的引用
class contents{ private int i = 11; public int value(){return i;} public fristinnerclass get(){return fristinnerclass.this;} }
三 衍生
作用域的内部类: 达到了内部类的隐蔽性,只有在作用域内能够访问
待续......................