您的位置:首页 > 其它

内部类的访问权限

2016-04-12 18:58 288 查看
当生成一个内部类对象时,此对象与制造它的外围对象之间就有了一种联系,所以他能访问其外围对象的所有成员,

而不需要任何特殊条件。内部类还拥有其外围类的所有元素的访问权。

package lu.innerclasses;

import static lu.utils.Print.*;

import java.util.Random;

/*

* Sequence是一个固定大小的Object数组,以类的形式包装了起来。可以调用add()在序列末增加新的Object。

* 要获取Sequence中的每一个对象,可以使用Selector接口。

* 在内部类中可以访问其外围类的方法和字段,就像自己拥有他们似的。所以内部类自动拥有对其外围类所有成员的访问权。*/

interface Selector{

boolean end();

Object current();

void next();

}

public class Sequence {

private Object[] items;

private int next=0;

public Sequence(int size){

items=new Object[size];

}

public void add(Object x){

if(next<items.length){

items[next++]=x;

}

}

private class SequenceSelector implements Selector{

private int i=0;

public boolean end(){return i==items.length;}

public Object current(){return items[i];}

public void next(){if(i<items.length)i++;}

}

public Selector selector(){

return new SequenceSelector();

}

public static void main(String[] args){

Sequence sequence=new Sequence(10);

for(int i=0;i<10;i++)

sequence.add(Integer.toString(i));

Selector selector=sequence.selector();

while(!selector.end()){

print(selector.current()+" ");

selector.next();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: