sách gpt4 ai đã đi

java - static、final、static Final - 正确用法以及何时使用它们?

In lại 作者:行者123 更新时间:2023-12-02 14:36:39 31 4
mua khóa gpt4 Nike

我想知道什么时候应该对变量和(或)方法使用静态、最终、静态最终参数。据我了解:

  • final:类似于c++中的const参数。它基本上意味着值(或在方法中 - 返回值)不会改变。
  • 静态:这意味着值(或方法)没有直接分配给某个对象 - 因此您可以在其他类中使用静态变量(或方法)而无需创建对象
  • final static:这种组合是否意味着您拥有变量(或方法),您可以在不创建对象(静态)的情况下访问该变量(或方法),并且无法更改其值(如 c++ const 中)(final)<

如果我是对的,那么我什么也得不到。在 IntelliJ IDE 中,当您将方法声明为 public final static 时,它会指出应该删除 final,因为 static 已经被指出了。为什么、如何、何时???

1 Câu trả lời

tĩnh 表示字段或方法属于, thay vì类的单个实例.

cuối cùng 在应用于方法与字段(或局部变量)时实际上意味着不同的东西:

  • cuối cùng 变量和字段不能重新分配。这与 C++ 的 hằng số 非常相似。
  • cuối cùng 方法无法被重写,仅适用于实例上的方法。在这个意义上使用时,cuối cùng 与 C++ 的 hằng số 并不相似。

由于您无法重写类上的 tĩnh 方法,因此组合修饰符 static final nói chung là 是多余的,这就是 IntelliJ 建议您删除的原因修饰符之一。

附加说明:

  • cuối cùng 变量和字段可以引用可能更改的实例,即使引用本身无法更改。
  • 虽然您没有询问类,但 cuối cùng 还有第三个含义:cuối cùng 类不能被子类化。 tĩnh 也可以应用于嵌套类(类中的类),但它具有相同的含义:tĩnh 嵌套类并不完全属于封闭类的一个实例,否则就会这样。
  • 尽管静态方法无法被重写,但有一种类似行为,称为“遮蔽”或“方法隐藏”,by which a subclass offers a static method of the same name and signature as the subclass 。这与覆盖的行为不同,但类似,static final methods cannot be shadowed .

相关SO问题:"Is it a bad idea to declare a final static method?"

关于java - static、final、static Final - 正确用法以及何时使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23500899/

31 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com