// 定义一个包含静态成员和方法的类
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();
}
}
静态变量 (static int count
):静态变量属于类本身,而不是某个具体的对象。所有实例共享同一个静态变量。因此,当创建多个对象时,静态变量的值会在所有对象之间共享。
实例变量 (int instanceCount
):实例变量属于每个对象的私有数据,每个对象都有自己独立的一份副本。
静态方法 (static void staticMethod()
):静态方法可以通过类名直接调用,而不需要创建对象。静态方法只能访问静态变量和其他静态方法,不能直接访问实例变量或实例方法。
实例方法 (void instanceMethod()
):实例方法必须通过对象实例来调用,它可以访问实例变量和静态变量。
静态代码块:静态代码块在类加载时执行,通常用于初始化静态变量或执行一些类级别的初始化操作。静态代码块只会执行一次。
构造方法:每当创建对象时,构造方法会被调用。在这个例子中,每创建一个对象,静态变量 count
和实例变量 instanceCount
都会分别加1。
main
方法:程序的入口点,演示了如何调用静态方法和实例方法。
上一篇:java decimal
下一篇:java对象转json字符串方法
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站