java内部类读书笔记-链接到外部类

来源:互联网 发布:手机淘宝怎么换皮肤 编辑:程序博客网 时间:2024/05/21 01:46

1.链接到外部类成员

内部类拥有所有外部类对象的访问权限。

以下为util包中Iterator接口源码:

package java.util;import java.util.function.Consumer;public interface Iterator<E> {    boolean hasNext();     E next();       default void remove() {        throw new UnsupportedOperationException("remove");    }        default void forEachRemaining(Consumer<? super E> action) {        Objects.requireNonNull(action);        while (hasNext())            action.accept(next());    }}

使用内部类实现Iterator功能:

package main.java.innerclass.iterator;import java.util.Iterator;public class MyList<T> {private Object[] items;private int next = 0;public MyList(int size) {items = new Object[size];}private class Itr implements Iterator<T> {/** * 内部类中直接使用外部变量 */@Overridepublic boolean hasNext() {return next != items.length;}@Overridepublic T next() {if (hasNext()) {return (T) items[next++];}return null;}}}



2.使用.this链接到外部类

package main.java.innerclass;public class Outer {/** * 简单内部类,包可见 *  * */ class Inner {private String name = "inner1";public String toString() {return name;}/** * 获取一个新的外部类实例引用 * @return */public Outer getNewOuter(){return new Outer();}/** * 获取当前内部类实例所在外部类实例的引用 * @return */public Outer getOuter(){return Outer.this;}} }


0 0