如何在Java中的公共方法中访问变量?

时间:2013-07-22 09:59:32

标签: java

public class Test(){
  public List makeList(){
    //some code
    ....
    double density = mass / vol;
    return mylist;
  }
}

即使我只返回了一个列表,我怎么能引用density?在Python中,我可以调用self.density

我知道我可以创建另一个班级Pair<List, Double>,但由于杂乱,我宁愿不这样做。

3 个答案:

答案 0 :(得分:6)

  

在Python中,我可以调用self.density

不,这不一样。您在代码中定义的是本地变量 - 其范围仅限于makeList()

如果你想从其他方法引用它,你可以把它变成一个实例变量(这就是你在Python中用self做的事情):

public class Test {
   private double density = 0.0;

   public List makeList(){
      //some code
      ....
      density = mass / vol;
      return mylist;
   }
}

答案 1 :(得分:3)

density成为Test班级的实例成员。

public class Test { // NO open/close parenthesis here!

  private double density;

  public List makeList() {
    //some code
    ....
    this.density = mass / vol;
    return mylist;
  }

  public double getDensity() {
    return this.density;
  }

}

然后致电:

Test test = new Test();
List myList = test.makeList();
double density = test.getDensity();

答案 2 :(得分:0)

您需要将density声明为方法外的类Test的成员,并仅在方法中指定它。如果在方法中声明它,则无法在其他地方访问它。

像这样:

public class Test{
     private double density;

     public List makeList(){
        //some code
        ....
        density = mass / vol;
        return mylist;
     }
}