news 2026/4/16 12:49:13

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

作者头像

张小明

前端开发工程师

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/12 14:40:32

移位寄存器与主从设备同步:图解说明工作流程

移位寄存器如何让主从设备“步调一致”?一文讲透同步控制的底层逻辑你有没有遇到过这种情况:想用一个Arduino点亮8个LED,结果发现IO口不够用了?或者在刷新一块数码管时,看到显示内容“一闪而过”,像是接触不…

作者头像 李华
网站建设 2026/4/16 12:32:00

面向生产环境的设计理念:TensorRT镜像稳定性全面评测

面向生产环境的设计理念:TensorRT镜像稳定性全面评测 在当今AI模型不断“长大”的时代,一个训练完的视觉大模型动辄数百MB甚至上GB,而线上服务却要求百毫秒内完成推理——这种矛盾在推荐系统、实时视频分析等场景中尤为尖锐。更令人头疼的是&…

作者头像 李华
网站建设 2026/4/15 13:29:15

Keil C51软件安装环境搭建:初学嵌入式第一步

从零开始搭建Keil C51开发环境:嵌入式入门的第一道坎,我帮你跨过去你是不是也遇到过这种情况?刚下定决心学单片机,兴致勃勃地打开电脑准备安装Keil C51,结果点开安装包就弹出“Access Denied”;好不容易装上…

作者头像 李华
网站建设 2026/4/13 10:18:25

避坑指南:常见TensorRT镜像转换失败原因及解决方案

避坑指南:常见TensorRT镜像转换失败原因及解决方案 在AI模型从训练走向生产部署的“最后一公里”中,推理性能往往成为决定系统成败的关键。尤其是在视频监控、自动驾驶感知、实时推荐等高吞吐、低延迟场景下,使用PyTorch或TensorFlow直接推理…

作者头像 李华
网站建设 2026/4/13 8:11:01

初学者必备的STM32CubeMX时钟树配置指南

破解STM32时钟迷宫:从CubeMX配置到外设精准运行的实战指南你有没有遇到过这样的情况?代码逻辑明明没问题,串口通信却乱码频发;定时器设置好1秒中断,结果每0.5秒就触发一次;USB设备插电脑死活不识别……最后…

作者头像 李华
网站建设 2026/4/15 15:46:34

TensorRT镜像用户手册:从安装到部署的每一个关键步骤

TensorRT镜像用户手册:从安装到部署的每一个关键步骤 在AI模型走向生产环境的过程中,一个令人头疼的问题始终存在:为什么训练时表现优异的模型,一到线上就变得又慢又卡? 这并不是个例。无论是自动驾驶系统中毫秒级响应…

作者头像 李华