Java中static修饰符知识点
时间: 2023-11-09 07:05:58 浏览: 44
在Java中,`static` 是一个关键字,它可以用来修饰类、方法和变量。
以下是关于Java中 `static` 修饰符的一些知识点:
1. `static` 可以用来修饰类变量或静态变量。这些变量属于类,而不是属于任何对象。
2. `static` 可以用来修饰方法。静态方法属于类,而不是属于任何对象。静态方法不能访问非静态变量和方法,因为它们没有对应的对象。
3. `static` 可以用来修饰代码块。静态代码块在类加载时执行,仅执行一次。
4. `static` 可以用来修饰内部类。静态内部类不能访问外部类的非静态成员,只能访问外部类的静态成员。
5. `static` 可以用来修饰接口中的方法。静态方法只能访问接口中的静态成员。
6. `static` 变量和方法可以通过类名直接访问,而不需要实例化对象。
7. `static` 变量和方法的生命周期与类的生命周期相同,只有一个副本,因此节省了内存。
8. `static` 方法不能被重写,因为它们属于类而不是属于对象。
9. `static` 变量可以被继承,但不能被覆盖。
10. `static` 变量和方法的访问修饰符可以是 public、protected 和 private,但不能是 abstract、final 和 native。
这些是关于Java中 `static` 修饰符的一些基本知识点,了解这些知识点有助于更好地理解Java中的类和对象。
相关问题
javastatic修饰符的作用是什么
Java中的static修饰符可以用来修饰变量、方法和代码块,主要有以下作用:
1. 静态变量
使用static修饰的变量称为静态变量或类变量,它属于整个类,而不是某个对象,可以通过类名直接访问。静态变量只会被初始化一次,在类加载时会被初始化,而且所有的实例共享同一个静态变量。在Java中,常量通常也是使用static修饰的。
示例代码:
```
class MyClass {
static int count = 0; // 静态变量,属于整个类
public MyClass() {
count++; // 每创建一个实例,count自增
}
}
public class Test {
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.count); // 2,输出实例个数
}
}
```
2. 静态方法
使用static修饰的方法称为静态方法或类方法,它属于整个类,可以通过类名直接调用。静态方法不能访问非静态成员变量和成员方法,它只能访问静态成员变量和其他静态方法。
示例代码:
```
class MyClass {
static int count = 0; // 静态变量,属于整个类
public static void increaseCount() { // 静态方法
count++; // 只能访问静态成员变量
}
public void printCount() { // 非静态方法
System.out.println(count); // 可以访问静态和非静态成员变量
}
}
public class Test {
public static void main(String[] args) {
MyClass.increaseCount(); // 直接调用静态方法
MyClass obj = new MyClass();
obj.printCount(); // 输出1,因为count是静态变量
}
}
```
3. 静态代码块
使用static修饰的代码块称为静态代码块,它在类被加载时执行,且只会执行一次。静态代码块常用于初始化静态变量或其他静态资源。
示例代码:
```
class MyClass {
static int count; // 静态变量
static { // 静态代码块
count = 10; // 初始化静态变量
}
}
public class Test {
public static void main(String[] args) {
System.out.println(MyClass.count); // 输出10,因为静态代码块已经初始化了count
}
}
```
总之,static修饰符的作用是使得成员变量、方法和代码块属于整个类,而不是某个对象,可以通过类名直接访问,也方便在静态方法和静态代码块中进行初始化和访问。
java 中接口修饰符
在Java中,接口可以使用以下修饰符:
1. public:接口对所有类可见,无论是否在同一个包中。
2. default:接口方法的默认修饰符,只能在接口内部访问。
3. static:接口方法可以使用静态修饰符,这样就可以在不创建实例的情况下直接调用该方法。
4. abstract:接口中的方法没有方法体,需要在实现类中实现。
5. strictfp:接口中的浮点数计算可以严格按照IEEE 754规范进行,保证不同平台下的计算结果一致。