欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > java之final

java之final

2024/10/23 14:58:21 来源:https://blog.csdn.net/Sh_12345/article/details/142206317  浏览:    关键词:java之final

目录

  • 1.final变量
  • 2.final方法
  • 3.final类
  • 4.final参数
  • 总结

在 Java 编程中, final关键字用于声明不可改变的实体。它可以用于变量、方法和类,分别表示变量不可变、方法不可重写以及类不可继承。

1.final变量

使用final关键字修饰的变量在初始化后不能再被修改。这意味着一旦为final变量赋值,就不能再改变它的值。

public class Example {final int finalVariable = 10;void changeValue() {// finalVariable = 20; // 这行代码将会导致编译错误,因为 finalVariable 是 final 的}public static void main(String[] args) {Example example = new Example();System.out.println(example.finalVariable); // 输出:10}
}

对于引用类型的final变量,引用本身不可变,但引用对象的内容可以改变。
示例

public class Example {final int[] finalArray = {1, 2, 3};void modifyArray() {finalArray[0] = 10; // 允许,因为修改的是数组内容// finalArray = new int[]{4, 5, 6}; // 不允许,因为 finalArray 是 final 的}public static void main(String[] args) {Example example = new Example();example.modifyArray();System.out.println(example.finalArray[0]); // 输出:10}
}

2.final方法

使用final关键字修饰的方法不能被子类重写。这对于防止子类改变父类的行为是有用的。

class Parent {final void finalMethod() {System.out.println("This is a final method.");}
}class Child extends Parent {// void finalMethod() {//     System.out.println("Trying to override.");// } // 这行代码将会导致编译错误,因为 finalMethod 是 final 的
}public class Example {public static void main(String[] args) {Child child = new Child();child.finalMethod(); // 输出:This is a final method.}
}

3.final类

使用final关键字修饰的类不能被继承。这对于创建不可变类或防止类被扩展是有用的。

final class FinalClass {void display() {System.out.println("This is a final class.");}
}// class SubClass extends FinalClass {
//     // 这行代码将会导致编译错误,因为 FinalClass 是 final 的
// }public class Example {public static void main(String[] args) {FinalClass finalClass = new FinalClass();finalClass.display(); // 输出:This is a final class.}
}

4.final参数

使用final关键字修饰的方法参数在方法内部不能被修改。这对于防止参数在方法内部被意外修改是有用的。

public class Example {void display(final int param) {// param = 10; // 这行代码将会导致编译错误,因为 param 是 final 的System.out.println(param);}public static void main(String[] args) {Example example = new Example();example.display(5); // 输出:5}
}

总结

  • final方法:不能被子类重写。
  • final类:不能被继承。
  • final参数:在方法内部不能被修改。
  • final变量:一旦初始化后就不能再改变其值。
    ①常量的命名规范:所有字母都大写,每个单词之间以 “_” 分隔
    ②常量没有默认值,因此在使用前必须为常量赋初始值
    赋值方式(直接显示赋值、构造器、代码块)
    若选择使用构造器为常量赋值,必须保证“所有”构造器都为该常量赋值

final关键字在 Java 中广泛应用,通过合理使用final可以提高代码的安全性和可读性,防止意外修改和继承。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com