java中成员变量前加不加static的区别,请写一段代码解释他
时间: 2024-04-29 10:24:56 浏览: 189
在Java中,加上static修饰符的成员变量称为静态变量,不加static修饰符的成员变量称为非静态变量。
静态变量属于类,被所有对象共享,只会被初始化一次,并且可以通过类名直接访问,即使没有创建类的对象也可以访问;而非静态变量属于对象,每个对象拥有自己的非静态变量,各个对象之间的非静态变量值可以不同,并且只有创建类的对象后才能访问。
以下是一个示例代码:
```
public class Test {
static int staticVar = 1;
int nonStaticVar = 2;
public static void main(String[] args) {
Test t1 = new Test();
t1.staticVar++; // 类名访问静态变量
System.out.println("t1.staticVar=" + t1.staticVar + ", t1.nonStaticVar=" + t1.nonStaticVar);
Test t2 = new Test();
t2.staticVar++; // 类名访问静态变量
t2.nonStaticVar++; // 对象名访问非静态变量
System.out.println("t2.staticVar=" + t2.staticVar + ", t2.nonStaticVar=" + t2.nonStaticVar);
}
}
```
上述代码中,静态变量staticVar是类共享的,两个对象调用它的值都会产生变化,而非静态变量nonStaticVar是每个对象拥有的属性,t1调用这个变量的值与t2则没有关系。
回答完毕,请问您还有其他问题吗?
阅读全文