news 2026/4/20 12:26:19

代码块、内部类(源码级会看即可,成员内部类,静态内部类,局部内部类)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码块、内部类(源码级会看即可,成员内部类,静态内部类,局部内部类)

面向对象高级

代码块

packagecom.itheima.code;importjava.util.Arrays;publicclassCodeDemo1{publicstaticStringschoolName;publicstaticString[]cards=newString[54];//静态代码块:有static修饰,属于类,与类一起优先加载,自动执行一次//基本作用:可以完成对类的静态资源的初始化static{System.out.println("静态代码块执行了");//先执行schoolName="黑马程序员";cards[0]="A";cards[1]="2";cards[2]="3";}publicstaticvoidmain(String[]args){//目标:认识代码块,搞清楚代码块的基本作用System.out.println("main方法执行了");//后执行System.out.println(Arrays.toString(cards));//返回数组的内容观察(不然返回的是数组的地址)}}//-----------------分界线-----------------packagecom.itheima.code;publicclassCodeDemo2{publicstaticStringname;publicstaticString[]direction=newString[4];//实例代码块:无static修饰,属于对象,每次创建对象时,都会优先执行一次//基本作用:初始化对象的实例资源{System.out.println("实例代码块执行了");direction[0]="N";direction[1]="S";direction[2]="E";direction[3]="W";}publicstaticvoidmain(String[]args){//目标:实例代码块System.out.println("main方法执行了");newCodeDemo2();//实例代码块执行一次newCodeDemo2();//实例代码块执行一次newCodeDemo2();//实例代码块执行一次}}

内部类

ps:用的不多,主要是为了看懂别人写的代码
前三种搞清楚语法,重点是匿名内部类

成员内部类


packagecom.itheima.innerclass;publicclassInnerClassDemo1{publicstaticvoidmain(String[]args){//目标:搞清楚成员内部类的语法//成员内部类创建对象的格式//外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();Outer.Inneroi=newOuter().newInner();oi.show();//成员内部类访问外部类成员的特点(拓展)://1.成员内部类中可以直接访问外部类的静态成员,静态方法,也可以直接访问外部类的实例成员 ////2.成员内部类的实例方法中,可以直接拿到当前寄生的外部类对象:外部类名.this}}//例题classPeople{privateintheartBeat=100;privateclassHeaer{privateintheartBeat=80;publicvoidshow(){intheartBeat=200;System.out.println(heartBeat);//200System.out.println(this.heartBeat);//80System.out.println(People.this.heartBeat);//100}}}//=================分界线=================packagecom.itheima.innerclass;//外部类publicclassOuter{publicstaticStringschoolName="黑马程序员";publicstaticvoidtest(){System.out.println("test()");}privateintage;publicvoidrun(){}//成员内部类:无static修饰,属于外部类的对象持有的publicclassInner{publicStringname;//构造器publicInner(){System.out.println("Inner() name ="+name);}//有参构造器publicInner(Stringname){this.name=name;System.out.println("Inner(String name) name ="+name);}publicvoidshow(){System.out.println("show()");//成员内部类中可以直接访问外部类的实例成员System.out.println(schoolName);test();//也可以直接访问外部类的实例成员System.out.println(age);run();}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}}

静态内部类


packagecom.itheima.innerclass2;publicclassTest{publicstaticvoidmain(String[]args){//目标:搞清楚静态内部类的语法//创建对象的格式:外部类名.内部类名 静态内部类对象名 = new 外部类名.静态内部类名();Outer.Innerinner=newOuter.Inner();inner.show();//1.静态内部类中是否可以直接访问外部类的静态成员?可以//2.静态内部类中是否可以直接访问外部类的实例成员?不可以}}//=================分界线=================packagecom.itheima.innerclass2;//外部类publicclassOuter{publicstaticStringschooolName;privateintage;//外部类的实例成员属于外部类的对象,必须用外部类的对象才可以访问//静态内部类:属于外部类本身持有publicstaticclassInner{privateStringname;publicvoidshow(){//1.静态内部类中是否可以直接访问外部类的静态成员?可以System.out.println(schooolName);//2.静态内部类中是否可以直接访问外部类的实例成员?不可以(外部类的实例成员属于外部类的对象,必须用外部类的对象才可以访问)//System.out.println(age);//报错}publicvoidsetname(Stringname){this.name=name;}publicStringgetname(){returnname;}}}

局部内部类

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 23:16:31

波特率与时钟源选择:硬件设计图解说明

波特率与时钟源:嵌入式通信稳定性的底层密码你有没有遇到过这样的场景?设备在实验室里通信一切正常,一拿到现场就频繁丢包;白天运行没问题,到了晚上温度下降,串口突然“抽风”;换了个主频更高的…

作者头像 李华
网站建设 2026/4/18 7:05:33

开源社区新热点:越来越多项目开始集成TensorRT镜像支持

开源社区新热点:越来越多项目开始集成TensorRT镜像支持 在AI模型日益复杂、部署场景愈发多样的今天,一个看似不起眼但影响深远的趋势正在悄然成型——从HuggingFace到MMDeploy,越来越多的开源项目开始原生支持导出 TensorRT引擎文件&#xf…

作者头像 李华
网站建设 2026/4/19 12:46:29

支持稀疏化模型吗?TensorRT镜像对剪枝结构的兼容情况

TensorRT 对稀疏化模型的支持现状与工程实践 在深度学习模型日益庞大的今天,推理效率已成为制约实际部署的关键瓶颈。从智能手机上的图像识别到数据中心里的推荐系统,低延迟、高吞吐的推理能力直接决定了用户体验和运营成本。为此,模型压缩技…

作者头像 李华
网站建设 2026/4/19 1:53:05

STM32CubeMX入门必看:通俗解释项目生成原理

从零开始搞懂STM32CubeMX:项目是怎么“画”出来的?你有没有过这样的经历?刚接触STM32时,面对厚厚的参考手册和密密麻麻的寄存器配置,一头雾水。明明只是想点亮一个LED,却要先研究RCC时钟使能、GPIO模式设置…

作者头像 李华
网站建设 2026/4/18 22:15:15

从91%到135%的“惊悚”跃升:一篇合规的“学术垃圾”是如何炼成的?

在当代科学传播的语境下,没有什么比“颠覆常识”更能刺激大众的神经了。 如果说“轻断食(168)”是过去几年全球最流行的健康生活方式之一,那么最近一项宣称“进食时间少于8小时,心血管死亡风险飙升135%”的研究&#x…

作者头像 李华
网站建设 2026/4/18 8:54:53

arm64 x64交叉编译目标文件生成操作指南

高效构建跨架构应用:从零掌握 arm64 与 x64 交叉编译实战你有没有遇到过这样的场景?手头是一台性能强劲的 x64 笔记本,却要为树莓派 5 编译一个 C 程序。如果直接在树莓派上跑make,风扇狂转、进度龟速;而你想把某个服务…

作者头像 李华