内部类的访问规则

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

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

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

转载于:https://www.cnblogs.com/wsw-tcsygrwfqd/p/4971888.html

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

  1. 毕向东Java基础教程(适合初学者入门的Java基础视频)

    关注公众号,免费获取资料 ​

  2. 【JAVA】毕向东Java基础视频教程-笔记

    传智播客-毕向东Java基础视频教程 <2013年-33days>版-学习代码记录 链接: GitHub库:JavaBXD33 目录 01-Java基础知识 02-Java对象细节 03- ...

  3. 黑马程序员最新版JavaWeb基础教程-学习笔记

    da@黑马程序员最新版JavaWeb基础教程-学习笔记 day06-HTML&CSS HTML HTML(HyperTest Markup Language):超文本标记语言 是一门语言,所有 ...

  4. linux磁盘符变化autofs,Linux基础教程学习笔记之Autofs自动挂载

    Linux基础教程学习笔记之Autofs自动挂载 Autofs自动挂载: yum -y install autofs vim /etc/auto.master  在文件中添加下面行 /home/gue ...

  5. 网络存储 linux 访问,Linux基础教程学习笔记28——使用Samba访问网络存储

    Linux基础教程学习笔记28--使用Samba访问网络存储 SMB用于Windows和类Linux系统直接的文件共享 安装samba client包: [root@linuxidc~]# yum i ...

  6. Java基础篇 学习笔记

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

  7. 毕向东—Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  8. 毕向东java基础总结

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  9. 「Redis 系列」那些你不知道的Redis配置文件详解,毕向东java基础视频教程

    daemonize ========= 是否以守护进程的方式运行,默认是 no,我们需要的话可以修改成 yes pidfile ======= 以后台方式运行 redis ,我们就需要制定一个 pid ...

最新文章

  1. Angular2入门教程-1
  2. 快递打印云服务器_企业微信支持寄快递查快递,实现员工寄件自由
  3. Apache 中 .htaccess 文件设置技巧16则
  4. 测试色谱柱柱效的软件,高效液相色谱柱柱效测定
  5. HUB,交换机,路由器,MODEM都有什么区别???
  6. Java 获得Class的绝对路径方法
  7. 华为郑叶来:致敬开发者,共创“ AI ”的世界
  8. 自动驾驶_感知_分割_车道线检测
  9. vfp 打开服务器文件,VFP下客户机访问任意映射服务器的方法
  10. 微信小程序生成分享海报
  11. 内存碎片是什么?关于内存碎片的解释
  12. 杰里之用户可在 chargebox.h 添加自定义命令,命令号必须大于等于 0xC0,小于 0xFE【篇】
  13. 【漏洞学习——XSS】TOM邮箱存储型XSS一枚
  14. Origin图选择性粘贴到word出现问题,提示‘word出现问题’解决方法
  15. 搜索引擎 百度 高级搜索
  16. 【C语言】案例十六:掷骰子(随机数)
  17. 【调剂】中国民航大学课题组招收硕士生,等离子体模拟领域,国家自然科学基金资助课题...
  18. 卸载kerberos
  19. 恭喜EDG 夺得冠军
  20. bootstrapTable动态渲染数据获取

热门文章

  1. 超全机器学习术语词汇表
  2. CVPR 2014 ObjectnessBING 原文翻译
  3. 手机视频直播解决方案
  4. 牛逼哄哄的SLAM技术 即将颠覆哪些领域?
  5. 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解
  6. Rainbond最佳实践:Tomcat配置Redis实现Session共享
  7. C++对象模型详解(上)
  8. unix_timestamp 时间戳函数用法(hive)
  9. 23 岁的 Java 成为编程界的扛把子,网友回复:这就是实力
  10. 自动化运维之PSSH