簡體   English   中英

如何從靜態方法返回非靜態變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM