static关键字声明的成员通过类名来访问,而没有static标识的通过对象名来访问。 请编写代码验证上一规则。需要对代码及结果进行相关说明。
时间: 2024-10-16 15:11:40 浏览: 16
静态变量(static)和非静态变量(non-static)的区别在于它们的生命周期和内存分配。静态变量属于类,所有实例共享,而非静态变量每个对象都有自己的副本。
下面是一个简单的Java示例,用于验证这个规则:
```java
public class StaticExample {
// 静态变量,通过类名StaticExample直接访问
public static int staticVariable = 0;
// 非静态变量,通过对象名实例化后才能访问
private int instanceVariable;
// 构造函数
public StaticExample() {
instanceVariable = 1;
}
public void displayVariables() {
System.out.println("Static variable value: " + StaticExample.staticVariable);
System.out.println("Instance variable value for this object: " + instanceVariable);
}
public static void main(String[] args) {
// 创建对象并显示实例变量值
StaticExample obj1 = new StaticExample();
obj1.displayVariables();
// 直接访问静态变量,不需要创建对象
StaticExample.staticVariable += 1;
System.out.println("Static variable after increment: " + StaticExample.staticVariable);
}
}
```
在这个例子中:
1. `staticVariable` 变量在`main`方法中可以直接通过类名`StaticExample`访问,并且在创建对象之前就可以修改它的值。
2. `instanceVariable` 属于`StaticExample`类的一个实例,所以只有当创建了`obj1`并调用其方法`displayVariables()`时,才能看到该变量的值。
3. 修改`staticVariable`后,所有通过`StaticExample`类访问到这个变量的地方都会受到影响。
阅读全文