zoukankan      html  css  js  c++  java
  • JAVA-初步认识-第十章-内部类-修饰符

    一.

    介绍一下内部类的小特点。内部类的定义位置,相当于定义在了外部类的成员位置上。它就可以被成员修饰符所修饰。这是外部类所不具备的。学过的成员修饰符有:public, private, static, 这些都是。 接下来准备演示一下,(这里讨论的就是,在不同的修饰下,如何访问内部类)

    这里知识点的讲解,是围绕,修饰符修饰内部类或者修饰内部类中的成员展开的。

    public没什么意思,公有,权限最大。

    二. private修饰的内部类的情况

    写个private,介绍一下。private只在本类中有效。

    什么都不写也是一种权限,比public权限小,比private权限大。在这种权限下,我们如果在其他的类当中直接访问Inner类,这是可以完成的(这个完成也需要创建对象吧?)→这里访问的是内部类中的成员,我以为是访问内部类。访问内部类不就是访问内部类中的成员么?(通过下面截图的理解来看,其它类直接访问外部类中的内部类中的成员。什么是直接,和间接?)

    上面截图的写法是不可以的,因为如果换种写法,如果再有一个OUter2类,里面也有Inner类(内部类),那么到底创建的是哪个外部类的内部类的对象呢?

    这样的不确定,我们必须描述一下所属。我觉着数据都是有所属的。(这里知识点的学习在于格式)

    对上图进行一个分析,in这个内部类变量必须有一个所属,属于哪个外部类的成员,所以有了Outer.Inner。接着右边,Inner类是一个外部类的成员,成员被访问要先有对象(通过外部类建立的对象,来访问外部类中的成员),new Outer(). 点号点上就意味着访问成员。这个成员就是一个类,所以new了一个对象。→是否可以说,不能访问类,只能访问该类对象

    这种格式不多见,为什么呢?有些情况下,内部类会被封装起来,不需要外界知道,也不能访问。

    私有化的成员,比如私有化的函数,其他的类是无法知道,只能是本类对象知道来访问。

    三. static修饰内部类的情况

    最后一个关键字是static,就这个有点意思。

    内部类静态了,这意味着外部类一加载,内部类就存在了。怎么访问内部类呢?

    为什么会有这样的说法呢?(“相当于一个外部类”意味着什么?如果从书写的格式来看,就一个new,意味就相当于一个外部类层次的类)

    截图讲解:等号左边是交代内部类所属,右边是新建对象,不用像之前一样先建立外部类对象再接着建立内部类对象,右边的new是创建内部类对象的关键字,这里Outer.只是交代内部类的所属。private修饰的情况中,第一个new是代表创建外部类的对象么?

     

    静态成员只能是静态之间相互使用,因此要修改语句。

    接着对程序再进行改变,静态内部类中还有静态方法。

    这时候连内部类的对象都不需要了,

     

    最后精彩的部分来了,程序再次进行修改,将内部类前面的静态修饰删去了。(为什么说精彩?内部类没有static修饰,那么就需要创建外部类对象来访问内部类,但是内部类中的成员是static修饰的,不需要创建内部类对象来访问其成员,内部类的成员是随着内部类加载而直接加载的。)

    这里产生一个规则,如果内部类里面有静态成员,那么内部类必须被静态修饰。

    如果是静态的话,通常随着类的加载而加载,我们就不需要创建对象了。直接用外部类名.内部类名.就可以了,但是内部类是非静态,外部类加载进来了,内部类没有加载进来,不能直接调用内部类,还必须创建内部类对象。(内部类创建了对象也无法调用,内部的静态成员。而外部类想使用内部类,还必须创建内部类对象(这句话说的对么?如果按这样的说法,目前这样的规则可以说的通。),这样就矛盾了,无法使用内部类里的静态成员)

    内部类和其成员可以同时使用static修饰,或者只有内部类使用static修饰。private修饰不会出现内部类中成员不允许修饰符修饰的情况。

    四.

    三种格式如下:

    开发中,这些都不是特别常见。

  • 相关阅读:
    js正则表达式中的问号使用技巧总结
    380. Insert Delete GetRandom O(1)
    34. Find First and Last Position of Element in Sorted Array
    162. Find Peak Element
    220. Contains Duplicate III
    269. Alien Dictionary
    18. 4Sum
    15. 3Sum
    224. Basic Calculator
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7831269.html
Copyright © 2011-2022 走看看