zoukankan      html  css  js  c++  java
  • 内部类--毕向东Java基础教程学习笔记

    内部类的访问规则

    1. 内部类可以直接访问外部类的成员,包括私有。

    之所以可以直接访问外部类的成员,是因为内部类中持有外部类的引用,格式:外部类名.this

    2.外部类要访问内部类,必须建立内部类对象。

     

    访问格式:

    1.当内部类定义在外部类的成员位置上并且非私有时,可以在外部其他类中,直接建立内部类的对象。

    格式:

    外部类名.内部类名 变量名=外部类对象.内部类对象;

    如:Outer.Inner in=new Outer().new Inner();

     

    2.当内部类在成员位置上,就可以被成员修饰符所修饰。

    比如private:将内部类在外部类中进行封装。

    static:内部类就具备了static的特性。

    当内部类被static修饰后,只能访问外部类的静态成员,出现了访问局限。

     

    在外部其他类中,如何直接访问static内部类的静态成员呢?

    Outer.Inner.function();(Inner 是静态的,可以直接通过外部类名Outer来访问;function也是静态的,可以直接通过其所在类的类名Inner访问。)

    注意:如果在内部类中定义了静态成员,则该内部类必须也是静态的。

    当外部类中的静态方法中需要访问内部类时,内部类必须也是static的。

    总的来说就是那个比较常见的提示:“不能在静态上下文中引用非静态变量”。

     

    3.因为内部类可以定义在外部类中任意的位置。

    当内部类被定义在局部时(比如,在方法中):

    1.不可以被成员修饰符修饰。

    2.可以直接访问外部类中的成员,因为还持有外部类的引用。

    但不可以访问它所在的局部区域中的变量,除非该变量被final修饰。

     

    什么时候需要使用内部类?

    当描述事物时,事物的内部还有事物,在内部的事物就用内部类来描述,因为内部事物需要使用外部事物的内容。

  • 相关阅读:
    02 小白新一天
    集合排序
    匿名内部类-Lambda表达式
    设计模式之适配器设计
    设计模式之代理设计
    设计模式之工厂设计
    依赖倒转原则
    多态及练习题
    在一个类中调用另外一个类
    对象的三大特性之封装
  • 原文地址:https://www.cnblogs.com/wsw-tcsygrwfqd/p/4971888.html
Copyright © 2011-2022 走看看