[英]How can I reference a variable within a method in another method in the same class (Java)?
假設我在一個類下有一個方法:
public void setNetForce(Planet[] planets) {
this.xNetForce = 0;
this.yNetForce = 0;
for(Planet p:planets) {
if (p == this) {
continue;
}
this.xNetForce += this.calcPairwiseForceX(p);
this.yNetForce += this.calcPairwiseForceY(p);
}
}
現在,我想在同一類的另一種方法中使用xNetforce和yNetForce的值,該怎么辦?
當您在方法中使用this.xNetForce
,意味着存在實例變量。
因此,它們可以與您在方法中使用的相同方式在其他非靜態方法中使用。
您可以通過移動初始化在同一類的另一種方法中使用xNetforce和yNetForce
this.xNetForce = 0;
this.yNetForce = 0;
在類級別的setNetForce()
方法外部,您可以將其設置為全局或可用於整個類。
據我了解,您有一個Planet對象,該對象保留了xNetForce和yNetForce的私有/公共變量。 因此,如果您使用一種方法修改這些值,它們將在對象范圍內保持修改狀態 。
this.xNetForce = 0;
this.yNetForce = 0;
通過這兩行, xNetForce
和yNetForce
似乎已經在全局范圍內(實例級別)
因此,您可以在同一類的任何方法中愉快地使用它們
但是,如果您想知道如果在此方法中聲明了這些變量,該怎么辦,例如:
public void setNetForce(Planet[] planets) {
int xNetForce = 0;
int yNetForce = 0;
......................
}
然后如何使用它們的另一種方法?
答案是你不能 。
this.xNetForce
表示此變量是此類的成員。
'this'子句訪問的任何變量實際上都是類成員。 可以從同一類的任何其他方法訪問類成員。 例:
public class Physics
{
private int xNetForce;
public void setNetForce(Planet[] planets) {
this.xNetForce = 0;
}
public void setNetForceValue( int val)
{
this.xNetForce=val;
}
}
如果將類變量聲明為靜態成員,則該類的所有對象將共享同一變量。
public void setXNetForce () {
this.xNetForce=xNetForce;
}
public void setYNetForce () {
this.yNetForce=yNetForce;
}
public void getXNetForce() {
return this.xNetForce;
}
public void getYNetForce() {
return this.yNetForce;
}
使用getter和setter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.