在 C++ 中,我可以在多个文件中使用 1 个类,当我使用一个文件中的函数修改一个值时,它会全局更改该值。
在 Java 中,每个文件都必须有自己的类;当我使用一个文件中的方法更改值时,它不会全局更改该值。
例如在 C++ 中,文件可能如下所示:
一些类.h
class someClass{
private:
int x;
public:
//Constructor
someClass(){
x = 5;
}
void changeVariable(); //Declaring function for later
}
主要.cpp
int main(){
someClass cClass;
cClass.changeVariable(); //Call function
cout << x; //outputs 6
}
文件A.cpp
void someClass::changeVariable(){
x = 6; //x is changed to 6 globally.
}
在 Java 中:
一些类.java
public class someClass {
int x;
//Constructor
public someClass() {
x = 5;
}
主.java
public class main {
public static void main() {
someClass cClass = new someClass();
subClass cSub = new subClass();
cSub.changeVariable();
System.out.print(x); //outputs 5
}
}
文件A.java
public class fileA extends someClass {
void changeVariable() {
x = 6; //x is changed to 6 only for fileA
}
}
我的问题是如何更改子类中的变量,以便全局更改该变量(对于 Java)。抱歉,如果问题仍然令人困惑。
最佳答案
试试这个:
public class someClass {
static int x;
//Constructor
public someClass() {
x = 5;
}
static 的变量意味着它的值对于同一类的所有对象都是通用的。仅为所有对象创建一个变量 x
,而不是为每个对象创建一个变量。
如果您想很好地解释静态的含义,请阅读该答案:
关于java - 如何从子类修改父类(super class)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30006242/