【问题标题】:Convert local variable into global variable in java在java中将局部变量转换为全局变量
【发布时间】:2014-02-19 14:35:31
【问题描述】:

我是 Java 编程的新手,我被困在如何将局部变量转换为类变量。我知道的方法是在方法外部声明变量,但是该变量的值是在方法内部初始化的,当我在方法外部使用该方法时,它给我 null。请让我,我该怎么做。

提前致谢。

【问题讨论】:

  • Read a tutorial. 不要停在那里,跟进任何你不明白的事情。
  • 你说的代码在哪里?仅供参考,java 中没有 global varaible's。您必须将它们称为instance member
  • 感谢 Suresh 纠正我。尽管有“全局变量”,但我必须使用“类变量”。请告诉我我能做到的方法。

标签: java scope


【解决方案1】:

在块外初始化变量,并将其设置在块内。您可以在外面访问它。

int myInt;
if(x > 10){
   myInt = x;
}
// You have access to myInt here;

if(x > 10){
   int myInt = x;
}
// You Do Not have access to myInt here;

【讨论】:

    【解决方案2】:

    为简单起见创建实例变量(类的成员变量)而不是局部变量。

    【讨论】:

    • 感谢 Ankur 的帮助。
    【解决方案3】:

    两件事。在类的构造函数中设置值,并且不要在方法中创建相同变量的新副本(它成为局部范围的变量)。

    【讨论】:

    • 感谢 jmkgreen 的帮助。
    【解决方案4】:

    在这种情况下,诀窍基本上是了解我们在 Java 中拥有的变量类型:

    1. 实例变量(非静态字段,在类中声明而不是方法(取决于您的目标),它们无法重新初始化,自动初始化)例如 int x;整数y;双数;
    2. 静态变量(每个类只创建一个副本)
    3. 局部变量(仅在已声明的方法或类内访问 - 在其范围内,与方法共用)

    在这种情况下,您要做的是在类的开头定义一个实例变量,然后在系统中的任何位置访问它。

    这是我的例子:我有一个简单的 POJO `class BMI{

    public double weight;
    
    public double getWeight() {
        return weight;
    }
    
    public void setWeight(double weight) {
        this.weight = weight;
    }
    
    public double getHeight() {
        return height;
    }
    
    public void setHeight(double height) {
        this.height = height;
    }
    
    public double height;
    
    
    public BMI() {
    }
    

    我的主要 Java 类 ...

    public class MainActivity {
        double weight;
        double height;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
        public void calculateBMI(double mWeight, double mHeight){
            BMI myWeight = new BMI();
            BMI myHeight = new BMI();
            weight = mWeight.setWeight();
            height = mHeight.setHeight();
            Height = height;
            weight = weight;
    //calculate your bmi
    
        }   `
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      • 2019-07-24
      相关资源
      最近更新 更多