Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java中static的作用和用法

作者:穹上之月   发布日期:2025-04-25   浏览:101

// 定义一个包含静态成员和方法的类
public class StaticExample {

    // 静态变量,属于类本身,所有实例共享同一份数据
    static int count = 0;

    // 实例变量,每个实例都有自己独立的一份数据
    int instanceCount = 0;

    // 静态方法,可以直接通过类名调用,不能访问实例变量和非静态方法
    public static void staticMethod() {
        System.out.println("This is a static method.");
        // 下面这行代码会报错,因为静态方法不能直接访问实例变量或方法
        // System.out.println("Instance count: " + instanceCount);
        System.out.println("Static count: " + count);
    }

    // 实例方法,必须通过对象实例调用
    public void instanceMethod() {
        System.out.println("This is an instance method.");
        System.out.println("Instance count: " + instanceCount);
        System.out.println("Static count: " + count);
    }

    // 构造方法,每次创建对象时调用
    public StaticExample() {
        count++; // 每次创建对象时静态变量加1
        instanceCount++; // 每个实例的实例变量加1
    }

    // 静态代码块,在类加载时执行,只会执行一次
    static {
        System.out.println("Static block executed.");
        count = 10; // 初始化静态变量
    }

    public static void main(String[] args) {
        // 调用静态方法,不需要创建对象
        StaticExample.staticMethod();

        // 创建对象并调用实例方法
        StaticExample obj1 = new StaticExample();
        obj1.instanceMethod();

        StaticExample obj2 = new StaticExample();
        obj2.instanceMethod();

        // 再次调用静态方法
        StaticExample.staticMethod();
    }
}

解释说明:

  1. 静态变量 (static int count):静态变量属于类本身,而不是某个具体的对象。所有实例共享同一个静态变量。因此,当创建多个对象时,静态变量的值会在所有对象之间共享。

  2. 实例变量 (int instanceCount):实例变量属于每个对象的私有数据,每个对象都有自己独立的一份副本。

  3. 静态方法 (static void staticMethod()):静态方法可以通过类名直接调用,而不需要创建对象。静态方法只能访问静态变量和其他静态方法,不能直接访问实例变量或实例方法。

  4. 实例方法 (void instanceMethod()):实例方法必须通过对象实例来调用,它可以访问实例变量和静态变量。

  5. 静态代码块:静态代码块在类加载时执行,通常用于初始化静态变量或执行一些类级别的初始化操作。静态代码块只会执行一次。

  6. 构造方法:每当创建对象时,构造方法会被调用。在这个例子中,每创建一个对象,静态变量 count 和实例变量 instanceCount 都会分别加1。

  7. main 方法:程序的入口点,演示了如何调用静态方法和实例方法。

上一篇:java decimal

下一篇:java对象转json字符串方法

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站