章10——面向对象编程(高级部分)——代码块

news/2025/1/16 14:50:23/文章来源:https://www.cnblogs.com/gknives/p/18394893

代码块/初始化块与方法的区别
无方法名、返回、参数,仅方法体。
不用通过对象或类显示调用,加载类/创建对象时隐式调用。

代码块的好处

总结:在有多个构造器的类中,可以把每个构造器中都需要有的重复语句抽取出来单独作为代码块,大大提高了程序的复用性。

public class CodeBlock01 {public static void main(String[] args) {Movie a = new Movie("a");Movie b = new Movie("b", 12);}}class Movie{private String name;private double price;private String director;{System.out.println("电影屏幕打开...");System.out.println("广告开始...");System.out.println("电影正式开始...");}public Movie(String name) {this.name = name;}public Movie(String name, double price) {this.name = name;this.price = price;}public Movie(String name, double price, String director) {this.name = name;this.price = price;this.director = director;}
}

代码块注意事项:
很重要!多复习!

注意!当调用到子类的static代码块时,其父类的static代码块也会被调用。(因为子类加载时其父类也会加载)

由上可以总结:类的加载和new实例之间是有重叠部分,且不相关的两件事情。
小结:
1.static代码块在类加载时执行,只执行一次。
2.非静态代码块在创建对象时调用,创建一次,调用一次。


代码块在构造器之前被调用。
示例代码如下:

public class CodeBlock02 {public static void main(String[] args) {A1 a1 = new A1();}
}class A1{private static int n1 = getVal1();private int n2 = getVal2();{System.out.println("1普通代码块");}static{System.out.println("1static");}public static int getVal1(){System.out.println("val1");return 10;}public int getVal2(){System.out.println("val2");return 30;}
}

输出如下:

val1
1static
val2
1普通代码块

当涉及到继承关系时的顺序:
父类加载->子类加载->父类构造->子类构造

有关最后一条:static代码块本质上也是一个static方法,普通代码块同理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/791721.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7-8月月报 | Apache SeaTunnel社区进展一览

各位热爱 Apache SeaTunnel 的小伙伴们,社区 7-8 月份月报来啦!这两个月项目有了哪些进展?又有谁登上了我们社区的贡献者榜单呢?快来一睹为快吧。 Merge Stars 感谢以下小伙伴上两个月为 Apache SeaTunnel 项目和社区发展所做的精彩贡献(排名不分先后):@Hisoka-X,@xxsc0…

易基因:血液Target-BS揭示靶向DNA甲基化标记水平与患者乳腺癌风险相关|Nature子刊

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 符合遗传性乳腺癌和卵巢癌(HBOC)标准的患者中,只有不到15-20%携带致病性编码基因突变,意味着可能存在其他分子机制导致这种疾病的风险增加。外周血DNA甲基化是乳腺癌(BC)风险的潜在表观遗传标记。在分子…

Apifox 私有化部署企业版价格

Apifox 是一个企业级 API 研发一体化协作平台,提供从 API 管理、研发到自动化测试的协同模式。它支持多种 API 协议,包括 HTTP/2、WebSocket、gRPC、Dubbo、GraphQL 等,帮助企业轻松管理 API 数字资产。下面来聊聊 Apifox 的私有化部署解决方案,这可是个为企业量身定制的全…

Python 在PDF中添加条形码、二维码

在PDF中添加条码是一个常见需求,特别是在需要自动化处理、跟踪或检索PDF文件时。作为一种机器可读的标识符,PDF中的条码可以包含各种类型的信息,如文档的唯一标识、版本号、日期等。以下是一篇关于如何使用Python在PDF中添加条形码或二维码的文章。所需Python库 Spire.PDF f…

AI图像放大工具,图片放大无所不能

AI图像放大工具,如ESRGAN,对于提高由Stable Diffusion生成的AI图像质量至关重要。它们被广泛使用,以至于许多Stable Diffusion的图形用户界面(GUI)都内置了支持。AI图像放大工具,如ESRGAN,对于提高由Stable Diffusion生成的AI图像质量至关重要。它们被广泛使用,以至于许…

ArcGIS中快捷添加在线地图

ArcGIS中快捷添加在线地图 1、首先打开这个地址:(https://www.geosceneonline.cn/geoscene/webapps/gallery) 2、选择一个需要的地图服务,点击 在ArcMap 中打开 3、此时会下载一个文件。item.pkinfo 4、双击打开该文件,会默认打开ArcMap并创建空白地图,并将天地图作为底…

PART1-Oracle关系数据结构-索引和索引组织表

3. 索引组织表 3.1. 索引概述 索引是与表或表簇关联的可选结构,有时可以加快数据访问速度。通过在表的一个或多个列上创建索引,在某些情况下,您可以从表中检索一小部分随机分布的行。索引是减少磁盘I/O的众多方法之一。 如果堆组织表没有索引,那么数据库必须执行全表扫描才…

南沙信奥塞陈老师解一本通题:1408:素数回文数的个数

【题目描述】求11到n之间(包括n),既是素数又是回文数的整数有多少个。【输入】一个大于11小于1000的整数n。【输出】11到n之间的素数回文数个数。【输入样例】 23 【输出样例】 1 【提示】提示: 回文数指左右对称的数,如:292,333。 #include <bits/stdc++.h> using…

软件工程第一次随笔作业

这个作业属于哪个课程 首页 - 软件工程2024 - 福州大学 - 班级博客 - 博客园 (cnblogs.com)这个作业要求在哪里 2024秋软件工程个人作业(第一次) - 作业 - 软件工程2024 - 班级博客 - 博客园 (cnblogs.com)这个作业的目标 搭建自己的博客,编辑自己的个人情况学号 102202117一…

脑机接口定义及相关概念

1 什么是脑机接口脑机接口(Brain-Computer Interface,简称,BCI)是指一种系统或设备,它通过解码大脑的电生理信号来与外部计算机或设备进行直接的通讯。BCI的目的是在不依赖身体运动的情况下实现大脑与计算机之间的信息交换。2 相关概念 2.1 脑电图(EEG) 最常用的脑机接口技术之…

海外合规|新加坡网络安全认证计划简介(一)

新加坡网络安全局(CSA)为组织制定了网络安全认证计划,旨在表彰具有良好网络安全实践的组织。Cyber Essentials 标志表彰已实施网络卫生措施的组织,而 Cyber Trust 标志则是表彰具有全面网络安全措施和实践的组织的卓越标志。这些标志是可见的指标,表明组织已实施良好的网络…

使用 ZwCreateThreadEx 函数强力注入 Dll

常用的线程注入方法有:远程线程注入、全局消息钩子注入、APC 应用层异步注入 和 ZwCreateThreadEx 强力注入等。 今天我们讲一下ZwCreateThreadEx 强力注入的这种方法。之前的远程线程通过 CreateRemoteThread 函数来进行 Dll 注入,这种方式可以注入普通的进程,但是却无法注…