java编程思想第四版习题_10.23

来源:互联网 发布:徐州华道数据招聘 编辑:程序博客网 时间:2024/05/29 04:18
interface U {    void g1();    void g2();    void g3();}class A {    public U getU() {        return new U() {            @Override            public void g1() {                System.out.println("g1()");            }            @Override            public void g2() {                System.out.println("g2()");            }            @Override            public void g3() {                System.out.println("g3()");            }        };    }}class B {    int current = 0;    U[] array;    B(int size) {        array = new U[size];    }    public void add(U u) {        if (current < array.length) {            array[current++] = u;        }    }    public void clear(int index) {        if (index < array.length && index >= 0) {            System.out.println("clear index: " + index);            array[index] = null;        }    }    public void traversal() {        for (int i = 0; i < array.length; i++) {            if (array[i] != null) {                System.out.println("=====index: " + i + " start=====");                array[i].g1();                array[i].g2();                array[i].g3();                System.out.println("=====index: " + i + " end=====");            }        }    }}public class InnerClassTest {    public static void main(String[] args) {        B b = new B(3);        for (int i = 0; i < 3; i++) {            b.add(new A().getU());        }        b.traversal();        b.clear(0);        b.clear(2);        b.traversal();    }}

输出:
=====index: 0 start=====
g1()
g2()
g3()
=====index: 0 end=====
=====index: 1 start=====
g1()
g2()
g3()
=====index: 1 end=====
=====index: 2 start=====
g1()
g2()
g3()
=====index: 2 end=====
clear index: 0
clear index: 2
=====index: 1 start=====
g1()
g2()
g3()
=====index: 1 end=====

0 0
原创粉丝点击