当前位置: 首页 > news >正文

Java中static的用法

目录

1. 静态变量(Static Variables)

2. 静态方法(Static Methods)

3. 静态代码块(Static Blocks)

4. 静态内部类(Static Nested Classes)

5.执行顺序

6.注意事项


在Java中,static关键字有几个重要的用途,主要用于定义类的静态成员,如静态变量、静态方法和静态代码块。以下是对这些用法的详细讲解。

1. 静态变量(Static Variables)

(1)定义:使用 static 修饰的变量属于类本身,而不是类的某个特定实例。所有实例共享同一个静态变量。
(2)用途:常用于表示类的公共常量或计数器等。

class Example {static int count = 0; // 静态变量Example() {count++; // 每创建一个实例,计数器加1}
}// 使用
Example obj1 = new Example();
Example obj2 = new Example();
System.out.println(Example.count); // 输出 2
 2. 静态方法(Static Methods)

(1)定义:使用 static 修饰的方法,也属于类本身,可以直接通过类名调用,而不需要创建类的实例。
(2)用途:通常用于那些不依赖于实例字段的方法,比如工具方法或工厂方法。

class Utils {static void printHello() { // 静态方法System.out.println("Hello, world!");}
}// 使用
Utils.printHello(); // 输出 "Hello, world!"
3. 静态代码块(Static Blocks)

(1)定义:静态代码块在类加载时执行一次,用于初始化静态变量或者执行一些一次性的操作。
(2)用途:通常用于复杂的静态初始化。

class InitializationExample {static int value;static {value = 5; // 静态代码块}
}// 使用
System.out.println(InitializationExample.value); // 输出 5
 4. 静态内部类(Static Nested Classes)

(1)定义:类可以定义在另一个类内部,并且可以被声明为`static`,这意味着静态内部类不依赖于外部类的实例。
(2)用途:当内部类的逻辑与外部类的逻辑紧密相关,但不需要访问外部类的实例时,使用静态内部类。

class OuterClass {static class InnerClass {void display() {System.out.println("Static Inner Class");}}
}// 使用
OuterClass.InnerClass inner = new OuterClass.InnerClass();
inner.display(); // 输出 "Static Inner Class"
5.执行顺序

父类静态代码块——>子类静态代码块——>父类构造代码块——>父类的构造方法——>子类构造代码块——>子类构造方法

6.注意事项

(1)静态方法只能直接访问静态变量和静态方法,无法直接访问实例变量和实例方法,因为它们需要通过实例来访问。
(2)静态变量和方法的生命周期和类的生命周期相同,而实例变量和方法的生命周期与对象实例相关。


 


http://www.mrgr.cn/news/4818.html

相关文章:

  • 一伴app相亲交友源码开发
  • 小区社区超市商城停车场管理系统-计算机毕设Java|springboot实战项目
  • 【MySQL进阶之路】数据库的操作
  • Unity编辑器扩展之Project视图扩展
  • 这对二婚夫妻结婚半年,一起生活才一个月,就走到了婚姻尽头!
  • 【头条的AI IDE MarsCode】
  • stm32智能颜色送餐小车(ESP8266WIFI模块、APP制作、物联网模型建立、MQTTFX)
  • MybatisPlus多表查询及分页查询 2024/8/18 19:10
  • 正则表达式
  • Unity编辑器扩展:创建一个欢迎窗口,在启动Editor的时候显示自定义窗口。
  • 【工业机器人】工业异常检测大模型AnomalyGPT
  • 深度学习基础—其他正则化技巧
  • 网络性能优化:从问题诊断到解决方案
  • 10秒记住C语言运算优先级
  • 软考:软件设计师 — 15.数据结构及算法应用
  • 29 python脚本使数据库读写分离,mysql主从开机自动同步,python操作数据库,MyCat插件的学习
  • 2024河南省萌新联赛第(六)场 郑州大学
  • 【安全】XSS
  • 鸿蒙内核源码分析(物理内存篇) | 怎么管理物理内存
  • 【Vue】模板语法