當前位置:首頁 » 編程語言 » java非靜態方法調用靜態方法

java非靜態方法調用靜態方法

發布時間: 2022-05-15 15:49:05

java中的靜態方法是什麼

靜態方法是在類中使用staitc修飾的方法,在類定義的時候已經被裝載和分配。

靜態方法為類所有,可以通過對象來使用,也可以通過類來使用。

我們之前一直寫的mian方法仔細看看,它就是一個靜態方法,靜態方法使用如下:

❷ Java中為什麼要有靜態方法 和非靜態方法之分

站在「面向對象」的角度,static,也就是你說的靜態,是為了保持共性,大傢伙都用一個,而非靜態就是為了保持個性,這個個性需要使用實例來完成。例如
class Dog{
private static String color;
public static String getColor(){
return color;
}
}
這時候,Dog的color就只有共性,都是某種顏色,你想現實中Dog的顏色可能會有多種,要更加符合現實的話,這個修飾color的static最好是去掉,方法也是如此。在java中方法有一個更好的取名——行為,欄位也叫——屬性。使用靜態方法更多的用的是共性,她不需要個性,就像工具類中的對外提供的方法(API)一樣都是靜態的,而我們的一般類,都是為了保持個性而使用非靜態方法的。C語言中的確不需要這么考慮。

❸ java中的非靜態為什麼可以調用靜態方法

首先要知道靜態方法是屬於類的,可以通過類來直接調用。java的內部執行構造是先有類才可以構造實例,也就是說你通過實例去調用靜態方法時,類已經存在了,通過實例調用靜態方法和用類調用時是一致的。其次實例方法是屬於實例的,不屬於類當然類無法調用,可以這樣理解,有類了,但是實例可能還沒有實例化,所以靜態不能訪問非靜態

❹ JAVA中,非靜態方法可以調用靜態成員變數嗎

當然可以。
1.
靜態成員變數和靜態成員方法都是屬於類而不是某一個具體實例的,靜態成員(包括屬性和方法)是在類載入階段就已經初始化了的,所以當某一個實例訪問靜態成員的時候,靜態成員肯定是已經存在了的,所以可以訪問。
2.反過來,如果讓靜態方法去訪問實例成員那就不行了,因為實例成員的初始化在靜態成員之後

❺ java中非靜態方法可以調用靜態方法嗎

使用static修飾的方法被稱為靜態方法,該方法具有以下的特點:
(1)靜態方法只能調用靜態方法和靜態屬性。不能調用非靜態方法或屬性
(2)非靜態的方法可以調用靜態地方法

❻ java 中非靜態方法能調用靜態方法嗎

可以的!靜態存在的意義就是供別的程序使用(非嚴格說法)
比如工具類...包裝類....等等!
調用格式:
類名.靜態方法

❼ 一個關於JAVA靜態問題求解釋,STATIC方法只能訪問STATIC方法,非STATIC方法可以訪問STATIC方法,

你好,我覺得一句話就能說清楚,說的多了,反而讓你理解的更加模糊。記住這點:
靜態方法是屬於類的,而普通方法是屬於對象的。
屬於類的靜態方法可以在對象不存在的時候就能訪問到,而普通方法必須先new一個對象才能用這個對象訪問。當我們訪問調用靜態方法的時候(使用類名.靜態方法名)這個時候就沒有對象創建,所以普通方法是訪問不到的。為了避免這種錯誤,所以java就不允許在靜態方法中訪問非靜態方法。
還有糾正你的錯誤,main方法也滿足我上面說的,你仔細看下,main方法中是不是先創建的對象,然後用對象去訪問的呀。

❽ 非靜態方法可以調用靜態方法與變數嗎

Java中非靜態方法可以調用靜態方法與變數,如下:

packagecom.test;publicclassTestA{

/**
*靜態變數a
*/
privatestaticinta=1;

publicstaticvoidmain(String[]args){
//非靜態方法在main函數里只能用對象調用,main方法也靜態方法
TestAtestA=newTestA();
//非靜態方法裡面有設置靜態變數以及調用靜態方法
testA.test();
System.out.println("靜態變數a的值為:"+a);
}

/**
*靜態方法
*@paramname
*/
publicstaticvoidsayHello(Stringname){
System.out.println(name+"sayhello!");
}

publicvoidtest(){
System.out.println("我是非靜態方法test!");
//設置靜態變數值
a=2;
//調用靜態方法沒報異常
sayHello("Test");
}
}

結果:
我是非靜態方法test!
Testsayhello!
靜態變數a的值為:2

❾ java調用靜態方法和非靜態方法的區別

靜態方法從屬於類,非靜態方法屬於對象,靜態方法在類載入的時候就已經初始化了,而非靜態方法語言對象實例化之後才能初始化。

內存分析:靜態內存是指在程序開始運行時由編譯器分配的內存,它的分配是在程序開始編譯時完成的,不佔用CPU資源

❿ 什麼是Java語言中所說的非靜態方法,它和靜態方法有何區別

非靜態方法是相對於靜態方法來說的。靜態方法使用static關鍵字來標示,非靜態方法沒有此關鍵字。
他們之間最大的區別在於它們生命周期的不同,靜態方法屬於全局方法,當靜態方法第一次被訪問的時候,就將常駐內存直到整個系統被銷毀;而非靜態方法則與類有關,只有該方法所在的類被實例化之後,該方法才能被訪問,類被銷毀的同時方法也被銷毀。生命周期的不同決定了它們的調用方式的不同,靜態方法使用(類名.方法名)來調用,而非靜態方法則需要(new類名().方法名)來調用。
同時與之相關的就是,靜態方法不能調用非靜態方法和屬性。在了解了它們生命周期的不同後,這一點也比較好理解,因為靜態方法生命周期比非靜態方法和屬性長,當調用非靜態方法和屬性時就會產生非靜態方法和屬性已經被銷毀的情況導致程序出錯。

熱點內容
iptables允許訪問外網訪問 發布:2024-04-24 01:20:20 瀏覽:880
p在c語言中是什麼意思 發布:2024-04-24 00:53:13 瀏覽:236
空調壓縮電機 發布:2024-04-24 00:48:03 瀏覽:507
市場如何進行配置資源 發布:2024-04-24 00:42:00 瀏覽:157
編譯好的軟體 發布:2024-04-24 00:41:19 瀏覽:889
多個文件夾建立 發布:2024-04-24 00:21:27 瀏覽:458
pythonurllib3安裝 發布:2024-04-24 00:12:33 瀏覽:902
伺服器部署錯了怎麼重置 發布:2024-04-24 00:02:30 瀏覽:349
色選機腳本 發布:2024-04-23 23:52:35 瀏覽:258
吉利博越推薦買哪個配置 發布:2024-04-23 23:52:34 瀏覽:636