static在Java中如何使用
时间: 2024-06-12 09:04:34 浏览: 37
在Java中,static关键字可以用于以下情况:
1. 静态变量:用static关键字声明的变量,称为静态变量或类变量。它们属于类,而不是属于实例。静态变量只有一个副本,无论创建多少个对象,都共享这个静态变量。静态变量可以通过类名直接访问,也可以通过对象名访问。
例如:
```
public class MyClass {
static int count = 0;
public MyClass() {
count++;
}
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.count); // 输出2
}
}
```
2. 静态方法:用static关键字声明的方法,称为静态方法或类方法。它们属于类,而不是属于实例。静态方法不能访问非静态变量和非静态方法,只能访问静态变量和静态方法。
例如:
```
public class MyClass {
static int count = 0;
public MyClass() {
count++;
}
public static int getCount() {
return count;
}
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.getCount()); // 输出2
}
}
```
3. 静态代码块:用static关键字声明的代码块,称为静态代码块。它们在类加载时执行,只执行一次。
例如:
```
public class MyClass {
static int count = 0;
static {
System.out.println("静态代码块执行");
}
public MyClass() {
count++;
}
public static int getCount() {
return count;
}
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.getCount()); // 输出2
}
}
```
4. 静态内部类:用static关键字修饰的内部类称为静态内部类。静态内部类可以访问外部类的静态变量和静态方法,但不能访问非静态变量和非静态方法。
例如:
```
public class OuterClass {
static int count = 0;
static class InnerClass {
public void printCount() {
System.out.println("count = " + count);
}
}
public static void main(String[] args) {
OuterClass.InnerClass inner = new OuterClass.InnerClass();
inner.printCount(); // 输出count = 0
}
}
```
阅读全文