使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:
final StringBuffer a=new StringBuffer("aaa");
执行如下语句将报告编译期错误:
a=new StringBuffer("");
但是,执行如下语句则可以通过编译:
a.append(" bbb!");
有人在定义方法的参数时,可能想采用如下形式来阻止方法内部修改传进来的参数对象:
public void method(final StringBuffer param){
...............................
}
实际上,这是办不到的,在该方法内部仍然可以增加如下代码来修改参数对象:
param.append("a");
相关推荐
day11_05_final关键字用于修饰成员变量
1. final修饰类:当使用final关键字修饰一个类时,该类不能被其他类继承。这一特性在Java标准库中有所体现,例如String类、System类、Math类和Scanner类都是用final修饰的。这样的设计通常是因为这些类已经足够通用...
例如,在 FinalTest1.java 例子中,final关键字修饰的成员变量a是一个常量,不能被修改。 final关键字也可以修饰方法,称为最终方法。最终方法不能被重写。例如,在 FinalTest2.java 例子中,Father类的最终方法...
day11_04_final关键字用于修饰局部变量
当`final`关键字用于修饰一个类时,该类不能被其他类继承,即不能有子类。例如: ```java public final class MyClass { // ... } ``` 这意味着`MyClass`是“太监类”,没有子类。同时,由于类不能被继承,...
在 Java 编程语言中,final 和 static 是两个非常重要的关键字,它们可以用来修饰类、方法、变量等,了解它们的使用方法和限制非常重要。本文将详细总结 final 和 static 的使用方法和限制。 一、final 关键字 ...
final修饰变量时,表示该变量一旦获得了初始值之后就不可被改变,final既可修饰成员变量(包括类变量和实例变量),也可以修饰局部变量,形参。 final修饰成员变量 类变量:当类初始化时,系统会为类变量分配内存,...
在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来声明一个变量、方法或类为不可变的。在这个学习demo中,我们将深入理解`final`关键字的各种用法及其背后的原理。 首先,`final`关键字用于变量...
如果修饰的是引用类型的变量,那么初始化后就不能让他指向另一个对象,如下图所示 2.修饰方法 用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下...
- 一个类如果有至少一个抽象方法,那么该类必须声明为抽象类,使用`abstract`关键字修饰,如`abstract class AbstractClass {}`。 - 抽象类不能被实例化,只能作为其他类的基类。如果一个类继承了抽象类,且不声明...
在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来定义不可变性和唯一性。这个关键字可以应用于变量、方法和类,分别赋予它们不同的特性。以下是对`final`关键字在不同场景下使用的详细介绍: 1....
2. **修饰变量**:对于变量而言,`final`关键字使得该变量成为常量,即一旦给变量赋值后,其值就不能再被改变。这对于创建不可变对象非常重要,同时也可用于声明各种配置项或者常量,确保它们在整个程序运行期间保持...
【Java并发--final关键字】 Java中的`final`关键字在编程中扮演着重要的角色,它可以用于修饰变量、方法和类,确保被修饰的内容在特定条件下不可变。以下将详细阐述`final`关键字在不同场景下的应用及其特点。 **...
- 对于引用类型,一旦被声明为`final`,其引用不能指向另一个对象,但是该对象内部的状态仍然可以改变(除非对象本身也是`final`的)。 ##### 2.2 不可变方法 - **定义**:使用`final`关键字修饰的方法不能被子类...
**final** 关键字是Java语言中用来修饰变量、方法和类的关键字之一,它的主要作用是限定被修饰的对象不可更改或重写。具体来说: 1. **final变量**:一旦被final修饰的变量被初始化之后,其值就不能再被改变。这...
当一个类被声明为`final`时,它将成为一个不可扩展的基类,意味着不能有子类继承它。这样的设计可以保护类的结构不被篡改,确保其行为不会在子类中意外改变,这对于提供不可变的类或者单例模式非常有用。例如,Java...
实例级别的`final`变量则属于每个对象实例,它们的值在对象创建时初始化,之后不能再改变。 现在我们来看`static`关键字。`static`修饰符用于表示类级别的成员,这些成员与类本身相关联,而不是类的实例。这意味着...
在引用类型变量中,final 关键字可以用于限制变量的指向对象的地址不能被改变,但不影响对象内部的成员变量值的修改。例如: ```java public class FinalDemo2 { public static void main(String[] args) { final...