gpt4 book ai didi

java - 使用构造函数初始化静态字段是否总是被认为是不好的做法?

转载 作者:行者123 更新时间:2023-12-02 02:20:50 25 4
gpt4 key购买 nike

我正在阅读有关 Java 中的初始值设定项的内容。
我阅读了几乎所有与 Stackoverflows 相关的问题,并且非常熟悉什么是构造函数,以及什么非静态(实例)初始化程序 block 静态初始化器是。
我想我确实了解它们的执行顺序以及它们的不同之处。
无论如何,有件事让我担心。事实上,静态字段可以通过构造函数和实例初始化 block 进行初始化。
我确实读过doing that is considered bad practice ,不是吗?
所以现在,我问自己为什么编译器允许这个操作\功能?
为什么它没有给出任何错误?
也许,在某种程度上或以某种方式有用......
代码示例:

public class Potato  {

static int x;

{x=10;}

public tuna(int a) {
System.out.println(x);
x=a;
}
}

public class MainClass {

public static void main (String[] args) {
Potato tom = new Potato (6);
System.out.println(tom.x);
Potato nick = new Potato (7);
System.out.println(tom.x);
}
}

输出:

10
6
10
7

最佳答案

在非静态 block 中初始化静态变量有什么意义?您可以在非静态 block 中修改静态变量,因为静态变量被视为类变量,而非静态 block 、方法和变量被视为实例变量。就我个人而言,我会执行静态方法,我将从静态 block 调用该静态方法来初始化静态变量。

关于java - 使用构造函数初始化静态字段是否总是被认为是不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48527994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com