gpt4 book ai didi

Java静态元素被不同的类访问

转载 作者:行者123 更新时间:2023-12-01 18:55:55 25 4
gpt4 key购买 nike

在 Java 中,静态元素通过仅指定类名后跟 dot 运算符来访问。

假设,我有一个名为 ClassA 的类,其静态基元类型 int a = 10;

如果我有另外两个类ClassBClassC同时访问元素a并进行一些更改,会发生什么变化B 类 也会影响 C 类 吗?

最佳答案

What If I have other two class ClassB and ClassC access the element a at same time and make some change, will the change made by ClassB also impacts in the ClassC ?

只有一个ClassA.a,因为它是静态成员。 ClassB 所做的更改会影响 ClassA.aClassC 将看到更改,因为它正在查看同一成员。

您描述的场景最好用代码和图表来表达:

类(class):

class ClassA {
static int a = 10;
}

class ClassB {
static void look() {
System.out.println("B sees " + ClassA.a);
}
static void change() {
ClassA.a = 42;
}
}

class ClassC {
static void look() {
System.out.println("C sees " + ClassA.a);
}
static void change() {
ClassA.a = 67;
}
}

使用它们:

ClassB.look(); // "B sees 10"
ClassC.look(); // "C sees 10"
ClassB.change();
ClassB.look(); // "B sees 42"
ClassC.look(); // "C sees 42"
ClassC.change();
ClassB.look(); // "B sees 67"
ClassC.look(); // "C sees 67"

图表:

                         +----------+                         |  ClassA  |                         +----------+                  +-+--->| static a |                  | |    +----------++-----------+     | ||  ClassB   |     | |+-----------+     | || (methods) |-use-+ |+-----------+       |                    |+-----------+       ||  ClassC   |       |+-----------+       || (methods) |-use---++-----------+

关于Java静态元素被不同的类访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001598/

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