美文网首页
★08.内部类

★08.内部类

作者: iDragonfly | 来源:发表于2017-07-03 19:53 被阅读0次
  1. 如果要从外部类的成员方法之外访问内部类,需要用outer.inner的方式引用。
  2. 内部类引用自己的方式是this,引用外部类的方式是outer.this。
  3. 内部类可以引用外部类的成员,要引用其他外部对象的时候,此对象必须是final的。
  4. 可以用.new来让某个外部类对象去创建其内部类对象。如:Outer.Inner inner = outer.new Inner();,不能跳过外部类对象直接创建内部类对象。
  5. 匿名内部类:
public class A {
    private class AA { }
    public AA getAA() {
        // 创建一个匿名内部类,此类继承AA
        return  new AA() {
            private  int ii = 0;
        };
    }
}
  1. 匿名内部类想要有构造函数的话,可以把代码放在构造代码块。
  2. 内部类(Inner Class):在方法作用域或类作用域中的类,可以定义在任何作用域中。若为匿名的,则为匿名内部类。
  3. 嵌套类(Nested Class):即static的内部类,嵌套类不能访问外围类的对象。
  4. 内部类与嵌套类的区别:内部类的保留了外围类的引用,可以访问外围类的对象。嵌套类则相反。
  5. 嵌套类不保留外围类的引用,所以不能用outer.inner的方式引用,也不能用使用.new的方式创建。
  6. 在接口中的类也是嵌套类,尽管没有static修饰(自动static)。
  7. java不能多重继承,只能单继承,但是可以其他要继承的类作为Java的内部类来间接实现。
  8. 继承别的外围类的内部类:
class WithInner {
    class Inner {}
}
// 继承外围类的内部类
public class InheritInner extends WithInner.Inner {
    InheritInner(WithInner wi) {
        wi.super();
    }
}
  1. 局部内部类(方法内)与匿名内部类的区别是:
  2. 局部内部类有名字能创建多个对象。
  3. 局部内部类有名字能有多个构造器。
  4. 匿名内部类只能用构造代码块来构造。
public class A {
    Counter getCounter(final String name) {
        // 局部内部类可以使用构造器来构造
        class LocalCounter implements Counter {
            private LocalCounter() {
                System.out.print("LocalCounter()");
            }
        }
        return new LocalCounter();
    }

    Counter getCounter2(final String name) {
        // 匿名内部类只能用构造代码块构造
        return new Counter() {
            {
                System.out.print("Counter()");
            }
        };
    }
}

相关文章

  • ★08.内部类

    如果要从外部类的成员方法之外访问内部类,需要用outer.inner的方式引用。 内部类引用自己的方式是this,...

  • 内部类

    成员内部类 局部内部类(定义在方法内和定义在作用域内的类) 匿名内部类

  • Java 内部类

    内部类包括成员内部类、方法内部类、*静态内部类、匿名内部类*。 内部类的作用 由于内部类的实现和外部类没有关系,内...

  • Java学习——内部类

    内部类 一,成员内部类(包括静态内部类和非静态内部类) 非静态内部类可以直接访问外部类的成员,反之则不行 非静态内...

  • Java 内部类、静态内部类、方法内部类(未完待续)

    内部类 什么是内部类?内部类其实就是在一个类中创建的类。内部类有四种: 成员内部类 静态内部类 局部内部类 匿名内...

  • java 内部类

    一般有四种内部类的使用方式: 嵌套的内部类 方法内的内部类 静态内部类 匿名内部类 什么时候用内部类: 有时候明显...

  • 内部类

    内部类 1.可以访问访问其外部类所有属性和方法,无需创建外部类对象 2.必须创建内部类对象,否则无法从外部类访问内...

  • Java 中的方法内部类

    Java 中的方法内部类 方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内...

  • java——内部类

    内部类 定义: 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内...

  • java之面向对象5

    方法内部类: 简而言之就是定义在外部类的方法内的类。 方法内部类只在该方法的内部可见,即只在该方法内可以使用。 方...

网友评论

      本文标题:★08.内部类

      本文链接:https://www.haomeiwen.com/subject/gguzcxtx.html