[英]How to return non-static variable from static method?
即使通過這些引用Tri1
,我也無法返回基本值。
public class Triangle {
private double base;
Triangle Tri1 = new Triangle();
public static double getBase()
{
return Tri1.base;
}
}
您可以將Tri1
靜態變量:
public class Triangle {
private double base;
static Triangle Tri1 = new Triangle();
public static double getBase()
{
return Tri1.base;
}
}
或制作getBase
實例方法:
public class Triangle {
private double base;
Triangle Tri1 = new Triangle();
public double getBase()
{
return Tri1.base;
}
}
您不能從靜態方法返回實例變量。
您嘗試調用特定對象的私有成員。 要訪問基礎,您必須將其設置為靜態。 但是,每個三角形都有相同的基值。
public class Triangle {
private double base;
static Triangle Tri1 = new Triangle();
public static double getBase()
{
return Tri1.base;
}
}
請進行以上更改。 它運行沒有錯誤。 請記住,從靜態方法中,我們只能訪問該類的靜態成員,無論是靜態變量還是其他靜態方法。 靜態方法在非靜態成員被加載之前已加載到內存中。因此,從靜態方法對非靜態成員的任何訪問似乎都將訪問未創建的對象,因此會出現編譯錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.