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

    xiaoxiao2021-03-25  103

    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> { /** * 内部类中直接使用外部变量 */ @Override public boolean hasNext() { return next != items.length; } @Override public 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; } } }

    转载请注明原文地址: https://ju.6miu.com/read-22519.html

    最新回复(0)