Java中的static关键字与静态初始化
需积分: 9 36 浏览量
更新于2024-08-18
收藏 1.26MB PPT 举报
"Java基础-静态初始化和相关概念"
在Java编程中,`static`关键字是一个非常重要的修饰符,它允许我们定义类级别的变量、方法和块,这些元素不依赖于类的实例即可访问。在给定的例子中,`static`关键字被用来初始化类变量`Person.total`。
例子分析:
```java
class Person {
public static int total;
static {
total = 100;
System.out.println("in static block!");
}
}
public class Test {
public static void main(String[] args) {
System.out.println("total = " + Person.total);
System.out.println("total = " + Person.total);
}
}
```
在这个例子中,`Person`类有一个静态变量`total`,在类加载时,与其关联的静态初始化块被执行,将`total`设置为100,并打印出`in static block!`。在`Test`类的`main`方法中,我们可以通过类名直接访问`total`,无需创建`Person`类的实例。两次输出`total`的值都是100,因为静态变量是所有类实例共享的,它们在内存中只有一个副本。
**static关键字的用途**:
1. **静态属性(类变量)**:如`Person.total`,它们在类加载时被初始化,并且是所有类实例共享的。这意味着修改一个实例的静态变量会影响到其他实例。
2. **静态初始化块**:这是类加载时执行的一段代码,通常用来初始化静态变量。在上述例子中,`total`的初始化就发生在静态块内。
3. **静态方法**:静态方法与类相关联,而不是类的任何实例。它们不能访问非静态变量,因为非静态变量是每个实例特有的。例如,计算圆面积的方法可以是静态的,因为它不依赖于特定的圆实例。
4. **单子模式**:`static`关键字在实现单例设计模式时也很常见,确保类只有一个实例存在。
5. **main方法**:程序的入口点`main`方法就是静态的,这允许我们在没有创建任何对象的情况下启动程序。
**final关键字**:`final`关键字用于声明不可改变的变量或方法,一旦赋值后就不能再更改。
**抽象类(abstract关键字)**:抽象类不能被实例化,它们用于定义一个类的接口,但不提供具体实现。子类必须实现所有抽象方法才能成为可实例化的类。
**接口(interface关键字)**:接口是完全抽象的,包含常量和抽象方法,用于实现多继承和定义特定的行为规范。
**内部类**:内部类是嵌套在另一个类中的类,它可以访问外部类的所有成员,包括私有成员。
总结来说,`static`关键字是Java中一个核心的概念,它允许我们创建类级别的变量和方法,这些元素与类的实例无关,而是直接与类本身关联。了解并正确使用`static`关键字对于理解和编写高质量的Java代码至关重要。
2018-05-29 上传
2014-06-26 上传
2014-03-28 上传
2014-06-26 上传
2018-08-30 上传
2018-02-27 上传
2017-03-09 上传
getsentry
- 粉丝: 26
- 资源: 2万+
最新资源
- 掌握压缩文件管理:2工作.zip文件使用指南
- 易语言动态版置入代码技术解析
- C语言编程实现电脑系统测试工具开发
- Wireshark 64位:全面网络协议分析器,支持Unix和Windows
- QtSingleApplication: 确保单一实例运行的高效库
- 深入了解Go语言的解析器组合器PARC
- Apycula包安装与使用指南
- AkerAutoSetup安装包使用指南
- Arduino Due实现VR耳机的设计与编程
- DependencySwizzler: Xamarin iOS 库实现故事板 UIViewControllers 依赖注入
- Apycula包发布说明与下载指南
- 创建可拖动交互式图表界面的ampersand-touch-charts
- CMake项目入门:创建简单的C++项目
- AksharaJaana-*.*.*.*安装包说明与下载
- Arduino天气时钟项目:源代码及DHT22库文件解析
- MediaPlayer_server:控制媒体播放器的高级服务器