導航:首頁 > 方法技巧 > 非靜態方法如何調用靜態方法

非靜態方法如何調用靜態方法

發布時間:2023-02-03 20:08:37

⑴ 在Java 中非static方法如何調用

說的很清楚了 先實例化再使用
就是先new一個對象,再用這個對象調用它的方法

⑵ 非靜態函數如何調用靜態函數

靜態函數在調用的時候沒有什麼特別的規則,直接調用就可以了。
1、靜態函數如果是成員函數,在本類的其它成員函數中調用時完全可以直接用函數名,也可以用「類名::」修飾函數名。
2、靜態函數如果是非成員函數(全局函數),在本文件內部調用的時候跟普通函數沒有任何區別,但不允許在其他文件中調用。

怎麼調用靜態方法

靜態方法不能訪問非靜態的實例變數和實例方法。實例方法可以訪問靜態成員和非靜態成員。
1在本來中直接調用靜態方法
2可以通過類名來調用該類的靜態方法
3通過實例調用靜態方法
// 外部類,不能是靜態的
public class OuterClass {

// 靜態方法,又稱為類方法,屬於Test類
public static void staticFun() {
}

// 非靜態方法,又稱為實例方法,屬於Test類的具體實例
public void nonStaticFun() {
}

// 靜態內部類,靜態類只能是內部類
public static class StaticInnerClass {

// 靜態方法,屬於StaticInnerClass類
public static void staticFun() {
}

// 非靜態方法,屬於StaticInnerClass類的實例
public void nonStaticFun() {
}
}

// 非靜態內部類,不能有靜態方法
public class NonStaticInnerClass {

// 非靜態方法,屬於NonStaticInnerClass的實例
public void nonStaticFun() {
}
}

// 測試代碼如下:
public static void main(String[] args) {
// 對於靜態方法,使用類直接訪問
OuterClass.staticFun();
StaticInnerClass.staticFun();

// 對於非靜態方法,需要使用類的實例訪問
new OuterClass().nonStaticFun();
new StaticInnerClass().nonStaticFun();

// 對於非靜態內部類,必須創建外部類後才能使用
OuterClass outerClass = new OuterClass();
NonStaticInnerClass nonStaticInnerClass = outerClass.new NonStaticInnerClass();
nonStaticInnerClass.nonStaticFun();
}
}

⑷ 靜態方法怎麼調用

先在eclipse中創建一個Java工程文件。並在src下創建demo包,在demo包下創建類DemoClass。創建後的工程目錄如圖。

02
接下來在DemoClass類中添加一個靜態屬性和靜態方法。被static修飾的屬性或方法就是靜態的。

03
對於靜態方法的調用,可以使用調用非靜態方法的方式去調用,即創建一個類的對象,然後再調用靜態方法,具體代碼如下圖。

04
編輯好代碼後,通過java應用程序的方式運行DemoClass.java文件,運行結果如圖2,說明成功調用了靜態方法。

05
不過,上面調用靜態方法的方式是不推薦的。如果使用上面的方式調用靜態方法,在eclipse中,你可以看到下圖的警告,大概的意思是要你使用正確的調用靜態方法的方式去調用該方法。

06
對於靜態方法,正確調用的方式是直接通過類名來調用的。用調用例子中的staticFunction為例,正確調用該方法的代碼為
DemoClass.staticFunction。當用類來調用靜態方法時,可以看到eclipse就不報警告了。

07
再次運行該文件,運行結果和剛剛一樣,說明也成功調用了靜態方法。

08
多說一句,對於靜態屬性的調用,也是用類名+點+靜態屬性的方式來調用的,正常都不會先創建一個對象,然後再通過對象來調用靜態屬性。

⑸ 非靜態方法中不能直接調用靜態方法嗎

靜態方法的內存分配時間與實例方法不同
當程序開始運行時,靜態方法已經在內存中被分配了空間,有了入口地址,所以可以通過"類名.方法名"直接調用
而實例方法只有在創建了該類的對象以後才分配內存
也就是說程序開始運行後靜態方法已經有了入口地址,而此時實例方法可能並未被分配內存,所以無法通過靜態方法調用實例方法
同理也不能用"類名.方法名"的方式調用實例方法

⑹ 非靜態的方法可以訪問靜態方法么

不可以的,只能在靜態方法中調用靜態方法。
這也是為什麼java的main函數是public static void main()。
靜態方法中,還可以調用非靜態方法。

⑺ 非靜態類的 靜態方法 怎麼調用

程序最終都將在內存中執行,變數只有在內存中佔有一席之地時才能被訪問。
類的靜態成員(變數和方法)屬於類本身,在類載入的時候就會分配內存,可以通過類名直接去訪問;非靜態成員(變數和方法)屬於類的對象,所以只有在類的對象產生(創建類的實例)時才會分配內存,然後通過類的對象(實例)去訪問。
在一個類的靜態成員中去訪問其非靜態成員之所以會出錯是因為在類的非靜態成員不存在的時候類的靜態成員就已經存在了,訪問一個內存中不存在的東西當然會出錯:class CA{private:int a; //非靜態成員,創建類的實例時分配內存,類的不同實例對應不同的內存區域

⑻ java非靜態方法里可以調用靜態方法嗎

靜態static方法中不能調用非靜態(non-static)方法,准確地說是不能直接調用non-static方法。但是可以通過將一個對象的引用傳入static方法中,再去調用該對象的non-static方法。
其實這個事實的應用很經常,以至於我們不去重視:
在主函數(static方法)中我們經常創建某個類的實例,再利用其引用變數調用它的非靜態方法。

閱讀全文

與非靜態方法如何調用靜態方法相關的資料

熱點內容
水的時間計算方法 瀏覽:803
痘痘的類型和解決方法 瀏覽:631
女裝摩托車儀表安裝方法 瀏覽:29
木折疊門吊輪安裝方法 瀏覽:955
脈法針灸計算方法 瀏覽:685
電腦內存插條使用方法 瀏覽:372
電腦系統快捷鍵設置方法 瀏覽:238
自動化導軌垂直度測量方法 瀏覽:29
都市天際線水電解決方法 瀏覽:39
在家裡洗衣服的正確方法技巧 瀏覽:33
增加電容的計算方法 瀏覽:866
科學家研究病毒檢驗方法 瀏覽:733
魅族4智能桌面在哪裡設置方法 瀏覽:830
快速治療痘印的方法 瀏覽:88
古代錢的鑒別方法 瀏覽:151
圈樹鐵絲圍欄網廠家的計算方法 瀏覽:182
弱聲的正確方法和技巧 瀏覽:723
製作洞洞樂最簡單的方法 瀏覽:894
紙條造型的方法還有哪些 瀏覽:285
普通瑪瑙手串鑒別最簡單方法圖片 瀏覽:474