内部类的访问规则

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修饰。

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

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

java 毕向东 内部类_内部类--毕向东Java基础教程学习笔记相关推荐

  1. 内部类--毕向东Java基础教程学习笔记

    内部类的访问规则 1. 内部类可以直接访问外部类的成员,包括私有. 之所以可以直接访问外部类的成员,是因为内部类中持有外部类的引用,格式:外部类名.this 2.外部类要访问内部类,必须建立内部类对象 ...

  2. java objective-c_Objective-C基础教程学习笔记(附录)从Java转向Objective-C

    Java接口与Objective-C正式协议类似,因为它们都需要实现一组方法.Java具有抽象类,但Objective-C没有.Java具有类变量,但在Objective-C中,可以使用文件范围内的全 ...

  3. java objective-c,Objective-C基础教程学习笔记(附录)从Java转向Objective-C

    Cocoa提供了一个名为NSPredicate的类,它用于指定过滤器的条件.可以创建NSPredicate对象,通过该对象准确地描述所需的条件,对每个对象通过谓词进行筛选,判断它们是否与条件相匹配. ...

  4. Java基础篇 学习笔记

    List item Java基础篇 学习笔记 java基础篇 第1章 计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. ...

  5. 黑马程序员Java教程学习笔记(五)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(五) 日期时间:Date.Sim ...

  6. java trace工具_Java 诊断工具 Arthas 教程学习笔记

    Java 诊断利器 Arthas,是阿里的一款开源工具.Github-alibaba/arthas 上可以看到它的介绍.了解它,主要是最近对分析 Java 错误堆栈比较感兴趣,机缘巧合看到了它. 本文 ...

  7. 黑马程序员Java教程学习笔记(三)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(三) 面向对象:设计对象.注意事 ...

  8. UE4_Niagara基础2_学习笔记_枪火制作

    教程地址:https://www.bilibili.com/video/BV1fE411b7at 一套基础入门且案例非常完整的教程,能够比较快的走一遍制作流程 讲师:贾越(Epic Fornite T ...

  9. java实现次方的运算_【技术干货】Java 面试宝典:Java 基础部分(1)

    海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...

  10. java中execution的作用_一文初步了解Java虚拟机

    大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...

最新文章

  1. phonegap android,Phonegap 3不适用于Android Studio
  2. ORACLE临时表空间
  3. 《潜伏》走红背后的心理原因
  4. ubutun安装MySQL hive配置_Hive安装以及部署(Ubuntu-MySql)
  5. CListBox用法总结
  6. 页面头部title、description、keywords标签的优化
  7. NVIDIA英伟达:深度学习服务器搭建指南 | 交流会笔记
  8. MAC地址克隆 破解共享上网限制
  9. 先有鸡还是先有蛋终结论
  10. 开启Windows远程桌面
  11. 通过IP查找ip所对应网卡名
  12. 世界上第一台数字计算机图片大全,第二章 计算机中的图世界
  13. android 重复解绑服务,Android培训实战教程之多次解绑抛出异常原因
  14. 洋酒销售系统的设计与实现
  15. 性能测评 | Nvidia新品JETSON XAVIER NX与JETSON TX2和JETSON NANO
  16. OJ每日一练——奥运奖牌计数
  17. Building MFC application with /MD[d] (CRT dll vers
  18. 【C语言】三子棋(井字棋)的实现
  19. 东南大学英语跨考计算机,2018东南大学翻译硕士经验贴(学姐本人)
  20. 集成ssj思路与注意点

热门文章

  1. SpringBoot实现人脸识别功能
  2. Activiti 7 配置及相关流程一站式介绍(包含基础流程及网关应用)
  3. activiti7对接springboot
  4. 功能安全标准-ISO26262-8---安全分析手段FIA,FMEA,FMEDA
  5. matlab拟合三维直线,三维数据拟合直线
  6. 100套计算机毕设源码+论文 免费分享 【2020最新版】
  7. 地区的省市区联动数据样例
  8. 同是4G标准,TD和FDD谁更快?
  9. 发那科机器人编码器_发那科M-420iA系列机器人驱动器报警编码器报警维修
  10. 单片机3x3矩阵键盘c语言,C51单片机的3*3矩阵键盘程序