当前位置: 首页 > news >正文

java外部类调用内部类_java中的外部类和内部类 | 学步园

1.概念

外部类:这是一个相对内部类的概念,如果一个类中嵌套了另外一个类,我们就把这个类叫做外部类。

内部类:顾名思义,就是定义在里边的那个类。  见以下代码:

f2384e17e6b2930846357aeb783ea974.png

定义了一个类Outer,在Outer内中一定了私有成员变量x ,成员方法show()和一个内部类 Inner  ; Inner类和普通类一样也有一个成员变量 x 和成员方法 method

2.访问规则

1. 内部类可以直接访问外部类中的成员

2.外部类访问内部类有两种方式:

第一种方式: 在主函数中直接用创建内部类对象的方式 , 如  :  Outer out = new Outer();

Outer.Inner in = out.new Inner();

这种方式通常不会用到,不建议使用

第二种方式:   在外部类方法中创建内部类对象;

在主函数中创建外部类对象,直接调用外部类方法 。 见以下代码 :

613826c585672bb6371e436b637f87b9.png

3.访问内部类中的成员变量。

思考一个问题,上边的代码中,打印出来的 x 的值是几 ?

没错,是 6  . 再看看以下的代码

3cf0c749e7b3ce5bd4632a16d6777ef0.png

定义了一个局部变量, 问 现在打印的x 的值是多少了 ?

答案是 4 。

这说明了什么 ?

如果 x 前面什么都没有,那么内部类中方法访问的是局部变量 ; 如果没有局部变量的,就访问 类中的成员变量 x  .

再来看看以下的代码 : 继续思考 打印的x值会是多少

c26a722718e282f6dd3b5ccafa4d6ab5.png

这时候就变成 3 了 , 所如果要访问外部成员变量 要加上 Outer.this   。

注: 当然,就想Inner类中如果没有局部变量 x ,即使不加也无所谓程序打印的一样是 6 ,也就是说 如果没有局部变量x Inner类中也没有成员变量x ,这个时候即便 x 前边什么也不加访问的也是 外部的 x 值3 了  。 见代码所示 :

dcec14b9d284dd52fd1fd8c2662e9585.png

7a5ef674cbe971354bd5c529764242f5.png


http://www.taodudu.cc/news/show-647768.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • java网络编程udp_Java网络编程之UDP
  • java 非递归求二叉树高度_非递归算法实现二叉树高度
  • excel xml mysql_数据库表转换为xml格式,excel转换为xml格式文件
  • java转json jar包_java转换json需导入的jar包说明
  • java arrays方法_Java工具类Arrays中不得不知的常用方法
  • java for 死循环_简单的java死循环 java中的死循环问题
  • java toolkit invoker_有没有哪位老哥愿意帮一下新人啊
  • java 枚举 下拉框_枚举enum在velocity模板语言中的应用-下拉菜单
  • mywebsql java版_MyWebSQL|MySQL数据库管理软件(MyWebSQL)下载v3.7官方版 - 欧普软件下载...
  • java打包后发布找不到jsp_eclipse中web项目部署以后jsp的java文件找不到问题(Tomcat配置serverlocations)...
  • java 队列的数组_JAVA-循环数组实现简单的队列
  • java 字节取位_java位 、字节 、字符的梳理
  • jemalloc java_从源构建tensorflow遇到错误:规则'@jemalloc//:jemalloc'的C编译失败
  • laravel 调试mysql_Laravel - MySQL数据库的使用详解3(Query Builder用法2:新增、修改、删除)...
  • php mysql.x86 64_centos7.2yum安装php70w.x86_64
  • java jbutton 禁用_java – 如何禁用JButton在禁用时变灰?
  • java论文翻译_Java技术(外文文献翻译)
  • java后台接收数据格式_Java后台基于POST获取JSON格式数据
  • aes c# java_AES加密,C#和java相同
  • java原生封装_[Java教程]原生AJAX封装
  • java max sum_杭电1024 Max Sum Plus Plus状压dp(java)
  • java主线程控制子线程_CountDownLatch控制主线程等子线程执行完--Java多线程
  • mysql数据库事件不执行_如何查看mysql事件是否执行
  • 我的世界1.7.10java下载安装_我的世界1.7.10正式版
  • java编写单词数_JAVA flink小试——单词计数
  • bbs mysql_简单BBS程序(需MySQL支持)
  • java oom分析_OOM分析
  • anaconda怎么使用python包_Anaconda中python包的介绍与使用方法
  • php抓取运动步数,使用PHP抓取微博数据
  • php 网页截屏,怎么用PHP实现网页截图