[英]Why is possible to call static methods of a non-static class?
考慮以下類結構:
[公共非靜態類別]
using UnityEngine;
using System.Collections;
public class GameManager : MonoBehaviour {
public static void Play() //STATIC METHOD
{
print("Play some audio!");
}
}
另一個類調用:
using UnityEngine;
using System.Collections;
public class TestClass : MonoBehaviour {
// Use this for initialization
void Start () {
GameManager.Play();
}
// Update is called once per frame
void Update () {
}
}
因為可以在不實例化GameManager類的情況下調用此方法?
靜態方法通常在實用程序方法的非靜態類中使用。 通過從請求的操作中返回新對象,它們還可用於掩蓋不可變類型的修飾符和構造函數。 請參閱java String。
困難來自這樣一個事實,即“靜態”對於方法和類的含義略有不同。
請參閱此處的相關文檔。
當方法聲明為static時 ,可以在創建其類的任何對象之前對其進行訪問,並且無需引用任何對象,並且非靜態類也可以包含靜態方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.