static成员与代码块

简介: static成员与代码块

1.static成员

1.1static修饰静态成员变量

static修饰的成员变量,称为静态成员变量

1.1.1静态成员变量不属于某个具体的对象,是所有对象所共享的,直接通过类名进行访问。

此时的classRoom就是一个静态成员变量

2.1static修饰静态成员方法

2.1.1在静态方法内部不能直接调用非静态的成员方法


2.1.2非静态的数据成员都需要对象来引用,静态方法里面不能使用this

2.1.3非静态成员方法内部可以使用静态成员方法

3.1static成员变量初始化

静态成员变量一般不会放在构造方法中来初始化,构造方法中初始化的是与对象相关的实例属性

3.1.1就地初始化

3.1.2默认初始化

3.1.3通过get和set方法进行初始化

3.1.4通过代码块进行初始化


2.代码块

2.1普通代码块

定义在方法内部的代码块称为普通代码块

2.2构造块(非静态代码块)

定义在类里面方法外面的代码块称为构造块

构造块一般用于初始化非静态数据成员

当存在构造块和构造方法时,那么先打印的是哪一个呢?

我们可以看到先被执行的是构造块(非静态代码块),然后才是构造方法

那么有些小伙伴会问,会不会是顺序的问题呢,那么我们颠倒一下顺序再来验证一次

结果仍然是相同的。所以,可以得到的结论是:构造块执行顺序在构造方法的前面

在构造块(非静态代码块)和非静态成员变量中分别赋值,那么打印的结果看定义的顺序

定义顺序颠倒

2.3静态代码块

代码块前有static称为静态代码块,一般用于初始化静态的数据成员或提前准备一些数据

当存在构造方法,构造块,静态代码块时,执行顺序为静态代码块,构造块,构造方法


注意:静态代码块不管生成多少个对象,其只会执行一次

此时生成了2个对象,但静态代码块只被执行了1次

相关文章
|
Linux Docker 容器
centos 7.9 部署 harbor 镜像仓库实践
centos 7.9 部署 harbor 镜像仓库实践
centos 7.9 部署 harbor 镜像仓库实践
|
存储 中间件 数据库连接
|
9月前
|
SQL 存储 缓存
Flink SQL Deduplication 去重以及如何获取最新状态操作
Flink SQL Deduplication 是一种高效的数据去重功能,支持多种数据类型和灵活的配置选项。它通过哈希表、时间窗口和状态管理等技术实现去重,适用于流处理和批处理场景。本文介绍了其特性、原理、实际案例及源码分析,帮助读者更好地理解和应用这一功能。
674 14
|
程序员 开发工具 开发者
程序员都该知道的 Github PR 流程
程序员都该知道的 Github PR 流程
519 0
|
存储 监控 关系型数据库
BRC20铭文合约NFT铸造交易平台系统开发稳定版/方案详细/步骤逻辑/源码指南
网络拓扑结构:设计一个稳定且高性能的网络拓扑结构对于BRC20铭文智能合约跨链系统的成功运行至关重要。
|
JavaScript 前端开发 容器
js使用表格生成一个日历,点击按钮上查看上个月,点击按钮下,查看下个月,月份,年份
js使用表格生成一个日历,点击按钮上查看上个月,点击按钮下,查看下个月,月份,年份
259 0
|
Java Maven
Gradle笔记 七 publishing 项目发布(一)
Gradle笔记 七 publishing 项目发布
207 0
|
Linux
Linux操作系统下proj4库编译与安装及ERROR 6: Unable to load PROJ.4 library (libproj.so)问题解决
Linux操作系统下proj4库编译与安装及ERROR 6: Unable to load PROJ.4 library (libproj.so)问题解决
1132 0
|
存储 文件存储 云计算
不瞒了,我们和追光动画有一个《杨戬》!
不瞒了,我们和追光动画有一个《杨戬》!
295 0
Blender窗口
Blender窗口
279 0