简述final、static的作用
时间: 2023-10-02 18:11:35 浏览: 109
final 和 static 都是Java中的关键字,用于修饰变量、方法和类,具有以下作用:
final:final修饰的变量表示常量,一旦被赋值后不可再次改变,final修饰的方法表示该方法不能被子类重写,final修饰的类表示该类不能被继承。final修饰的变量在多线程环境下是线程安全的。
static:static修饰的变量称为静态变量,属于类的成员变量,所有类的实例共享该变量。static修饰的方法称为静态方法,属于类的成员方法,可以通过类名直接调用,无需实例化对象。static修饰的类称为静态内部类,只能访问外部类的静态成员变量和静态方法。
需要注意的是,final和static可以同时修饰变量,表示该变量是一个常量且属于类的成员变量。例如:public static final int MAX_VALUE = 100;
相关问题
1、简述public、default、protected和private的作用。 2、简述final、static的作用。
1. public、default、protected和private是Java中的访问修饰符:
- public:公共的,可以被任何类访问,没有访问限制;
- default:默认的,同一个包内的类可以访问,不同包的类不能访问;
- protected:受保护的,同一个包内的类和不同包中的子类可以访问,不同包中的非子类不能访问;
- private:私有的,只能在本类中访问,其他类都不能访问。
2. final、static是Java中的关键字:
- final:表示最终的、不可变的,一旦被赋值,就不能再次被修改。通常用于修饰类、方法、变量等,防止被继承、重写或修改;
- static:表示静态的,可以用来修饰方法、变量、代码块等。静态方法和变量不需要实例化对象就可以访问,而且所有的对象都共享同一个静态变量。
请简述final关键字的作用,并举例说明。
`final` 是 Java 中的一个关键字,它有以下几个主要作用:
1. **常量声明**:当用于修饰变量(如 `final int MAX = 100;`)时,表示这个变量一旦赋值就不可更改,通常用来创建常量。
2. **方法不可变性**:如果一个方法被声明为 `final`,则该方法不能被子类重写(覆盖),只能提供新的实现,这有助于保证方法的完整性。
3. **类或对象的不变性**:对于类,标记为 `final` 表示该类不能被继承;对于对象引用,如果被声明为 `final`,则该引用将指向的对象不能被改变,防止了其他地方意外修改引用所指内容。
4. **枚举**:在枚举(enum)中,每个枚举常量默认都是 `final` 和 `static` 的,因为枚举本质上就是一系列静态常量。
例子:
```java
final String PI = 3.14; // 声明一个常量
class ImmutableMath {
final double calculateArea(double radius) { return Math.PI * radius * radius; } // 方法不可被重写
}
// 类不可被继承
final class Singleton { ... }
final MyObject obj = new MyObject(); // 对象引用不可被改变
```
阅读全文