Java中static变量的初始化与面向对象理解
需积分: 12 46 浏览量
更新于2024-08-18
收藏 772KB PPT 举报
在Java面向对象编程中,"static变量的初始化"是一个关键概念,它涉及到类的静态成员和实例成员的理解。在Java中,静态变量(也称为类变量)与类关联,而不是与类的任何特定实例。当你在类中声明一个变量为static,它的生命周期贯穿于类的整个运行期间,无论创建了多少个类的实例。
在给定的示例中,`Smember`类有两个静态变量`i`和`b`,以及一个实例变量`c`。在传统的类定义中,如:
```java
class Smember {
static int i = 100;
static boolean b = true;
char c = 't';
public Smember() {}
public static void main(String args[]) {
Smember m1 = new Smember();
Smember m2 = new Smember();
}
}
```
静态变量`i`和`b`在类加载时就会被初始化为100和true,即使在`main`方法中创建了多个`Smember`对象(如`m1`和`m2`),它们共享同一份静态变量的副本,意味着对这些变量的修改会影响到所有对象。
另一种情况是,如果静态变量在类的内部有一个静态块(`static {...}`),例如:
```java
class Smember {
static int i;
static boolean b;
static {
i = 100;
b = true;
System.out.println("In static block");
}
char c = 't';
public Smember() { System.out.println("In constructor"); }
public static void main(String args[]) {
Smember m1 = new Smember();
Smember m2 = new Smember();
}
}
```
在这里,静态块会在类加载时执行一次,打印出"In static block",在构造函数`Smember()`执行前,确保了静态变量的初始化。这意味着每个对象在其创建时,会看到静态变量已经设置好初始值。
在面向对象编程的基本概念中,对象是核心概念之一,它是程序中的实体,代表现实世界中的某个事物。类是对象的蓝图,定义了一组属性(状态)和行为(方法)。封装性、继承性和多态性是面向对象的三大特性,封装保证了数据的安全性和可维护性,继承使得子类可以重用父类的代码,而多态则允许同一种行为表现出不同的形式。
理解这些概念对于编写高效、易于维护的Java程序至关重要。通过合理利用静态变量和面向对象特性,你可以创建出模块化的代码结构,使得程序逻辑更清晰,复用性更强。
2022-11-21 上传
2022-11-01 上传
2023-05-31 上传
2023-06-28 上传
2023-09-07 上传
2023-09-13 上传
2023-06-07 上传
2024-09-11 上传
2023-05-27 上传
2023-06-06 上传
雪蔻
- 粉丝: 24
- 资源: 2万+
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解