InnerClass(1)

一 介绍

    内部类的作用: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;}
	}

 

 三 衍生

    作用域的内部类: 达到了内部类的隐蔽性,只有在作用域内能够访问

    待续......................

你可能感兴趣的:(C++,c,C#)