zoukankan      html  css  js  c++  java
  • Java的学习笔记

    我对内部类这一块的知识不熟悉,因此我查了一些资料并学习做了一些笔记。
    1.内部类:
    内部类可以访问外部类中的所有成员方法和成员变量。原因,由外部类.this来引用外部类的变量和方法。
    内部类变量:index/this.index/Middle.this.index/Outer.this.index。
    访问内部类:外部类提供一个方法,返回它的内部类。
    Outer outer = new Outer();
    Outer.Inner inner = outer.getInnter();
    Outer.Inner inner = outer.new Innter(); 建立内部类与外部类的关系。
    能否直接访问内部类,看它是否可见,不可见(在外部类的外边)就通过外部类引用,如果可见(在外部类的内部,和内部类在同一层),就直接引用,例如在外部类里引用。静态中不能有非静态,包括main。因为static是在类被加载的时候就存在,而非static是实例化一个对象时才存在的。当把类写到一个方法的内部时,那么这个类的范围只能在这个方法内部去使用。
    内部类可以放到:函数中,条件语句中,语句块中。不管欠套有多深,都可以随意访问外部类的成员。
    把内部类定义在了一个方法当中,如果要在内部类中访问该方法的参数,或者访问该方法中的变量时,该变量必须为final的。
    内部类:不只是public,default了,可把它的修饰比照方法的访问范围。
    内部类也可以定义为抽象类。
    静态的内部类只能访问外部类的静态成员变量和成员方法。
    静态内部类:能够有静态的声明。
    非静态内部类:不能够有静态的声明。为什么?解释:非静态的内部类说明需要实例化后才能用,而内部类中的变量却是静态的,即加载类的时候加载,之间矛盾。
    只有顶层类或static的内部类中才可以声明static成员。
    如果外部类要访问内部类的成员,要先实例化一个内部类的对象,通过对象去访问内部类的成员。
    2.内部类更多用法:
    内部类实现接口,并将内部类定义为private,这样可以隐藏实现细节。让用户只能通过接口去访问。
    内部类应用:
    当一个类继承了一个类并且实现了一个接口,但是实现的接口中的方法和继承的类中的方法同名,为了避免,使用内部类去实现这个接口。

  • 相关阅读:
    几个关于集合的有趣证明
    SICP 作业2.5
    有关集合大小的比较
    2020 ICPC 小米邀请赛 部分题解
    Hello World!
    【图论】BellmanFord算法
    【图论】格子图
    【图论】BFS
    【图论】二分图最大匹配 | 二分图最大独立集 | 二分图最小点覆盖
    【图论】最大权不相交区间
  • 原文地址:https://www.cnblogs.com/Mrsli/p/5271668.html
Copyright © 2011-2022 走看看