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

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

發布時間: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方法)中我們經常創建某個類的實例,再利用其引用變數調用它的非靜態方法。

閱讀全文

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

熱點內容
蘋果信息圖標在哪裡設置方法 瀏覽:260
老筆記本電腦提速最快方法 瀏覽:808
快速破三角形的方法 瀏覽:126
零食有哪些加工方法 瀏覽:625
防手機碎屏的方法 瀏覽:390
鞋子磨腳有什麼方法 瀏覽:258
紅寶石價格計算方法 瀏覽:242
隆下巴最佳方法 瀏覽:967
怎麼找回錢包的方法 瀏覽:456
公司電腦電源維修方法 瀏覽:948
用水果自製充電寶最簡單的方法 瀏覽:451
如何用化學方法鑒定酒精 瀏覽:575
ui圖標設計方法有哪些 瀏覽:770
三十秒快速入睡的方法 瀏覽:485
可以讓臉上皮膚快速變白的方法 瀏覽:81
簡單手工紙橋製作方法 瀏覽:883
關節僵硬是怎麼回事治療方法視頻 瀏覽:734
白色衣服染色了解決方法 瀏覽:843
有什麼比較快的賺錢方法 瀏覽:146
常用水泥混凝土攤鋪方法 瀏覽:928