gpt4 book ai didi

java - 如何在主方法中获取在不同方法中设置的私有(private)变量?

转载 作者:行者123 更新时间:2023-12-02 09:05:13 26 4
gpt4 key购买 nike

我试图更改方法中的私有(private)变量,然后在主方法中使用 getter 方法访问它们(如下所示),但是当我在主方法中获取私有(private)变量时,它始终为 0。我该怎么办在除 main 之外的方法中设置私有(private)变量,但仍然能够在 main 方法中访问该变量?

public class Example {

private int testNumber;

public static void main(String[] args) {
Example tester = new Example();
System.out.println(tester.getTestNumber());
tester.TheTestExample();
System.out.println(tester.getTestNumber());
}

public int getTestNumber(){
return testNumber;
}

public void setTestNumber(int x){
this.testNumber = x;
}

public void TheTestExample(){
Example MyTester = new Example();
MyTester.setTestNumber(4);
System.out.println(MyTester.getTestNumber());
}
}

最佳答案

您的应用程序创建了两个独立的Example实例。一个由 main 创建,另一个由 TheTestExample

创建

您似乎要问的是,main 如何在您的版本的 MyTester 变量中获取对 Example 实例的引用TheTestExample 方法。

答案是不能。您无法访问其范围之外的局部变量。该方法需要返回该变量中的引用,调用者需要保存它或直接使用它。例如。

    tester = tester.theTestExample();
System.out.println(tester.getTestNumber());

public Example theTestExample(){
Example myTester = new Example();
MyTester.setTestNumber(4);
System.out.println(MyTester.getTestNumber());
return myTester;
}

顺便说一下:

  • MyTester 不是私有(private)变量。它是一个局部变量。局部变量没有/不能有访问修饰符。称它们为“私有(private)”在技术上是不正确的并且令人困惑。 (对于其他人来说,可能也对于你来说。)

  • MyTesterTheTestExample 严重违反了 Java 样式约定。方法和变量名称应始终以小写字母开头。

关于java - 如何在主方法中获取在不同方法中设置的私有(private)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59869447/

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