首页 > 代码库 > Java - 内部类2
Java - 内部类2
到目前为止,内部类似乎还只是一种名字隐藏和组织代码的模式,这些都是很有用的,但还不是最引人注目的,它还有其他的用途。当生成一个内部类的对象时,此对象与制造它的外围对象之间就有一种联系,所以它能访问其外围对象的所有成员,而不需要任何特殊条件。此外,内部类还拥有其他的外围类的所有元素的访问权。
下面例子说明这一点:
1 package innerclasses; 2 3 interface Selector{ 4 boolean end(); 5 Object current(); 6 void next(); 7 } 8 9 public class Sequence {10 private Object[] items;11 private int next = 0;12 public Sequence(int size){13 items = new Object[size];14 }15 16 public void add(Object x){17 if(next < items.length)18 items[next++] = x;19 }20 private class SequenceSelector implements Selector{21 private int i = 0;22 public boolean end(){23 return i == items.length;24 }25 public Object current() {26 // TODO Auto-generated method stub27 return items[i];28 }29 public void next() {30 // TODO Auto-generated method stub31 if(i<items.length) i++;32 }33 }34 35 public Selector selector()36 {37 return new SequenceSelector();38 }39 40 public static void main(String[] args){41 Sequence sequence = new Sequence(10);42 for(int i = 0;i < 10;i++)43 {44 sequence.add(Integer.toString(i));45 }46 Selector selector = sequence.selector();47 while(!selector.end()){48 System.out.print(selector.current()+ " ");49 selector.next();50 }51 52 }53 }
结果:
0 1 2 3 4 5 6 7 8 9
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。