java方法靜態調用
㈠ java怎麼在靜態方法中使用動態方法
Java靜態方法是不能調用動態方法的,原因如下:
1.因為靜態方法和動態方法在內存中的位置不一樣,靜態方法的地址空間在載入類的時候就確定,而動態方法的地址空間在生成類實例的時候確定
2.靜態方法在程序初始化後會一直貯存在內存中,不會被垃圾回收器回收,
非靜態方法只在該類初始化後貯存在內存中,當該類調用完畢後會被垃圾回收器收集釋放。
3.靜態方法在初始化類時初始化,並分配內存;動態方法只有先創建類的實例對象後,才能調用動態方法
㈡ java中如何在靜態方法中實現對非靜態方法的調用,請問各位有沒有具體的例子。
public class A{
//類A中非靜態方法
public void func(){ ...... }
//類A中靜態方法(主函數)
public static void main(String[] args){
A a=new A();//需實例化A的對象後才可以調用A中非靜態方法
a.func();
}
如上面這個簡單的例子,靜態方法對非靜態方法發起調用時,需實例化包含非靜態方法的類的對象。如果類A中靜態方法需調用類B中非靜態方法時,也需實例化B的對象。
原因解釋:類中靜態的方法或者屬性,本質上來講並不是該類的成員,在java虛擬機裝在類的時候,這些靜態的東西已經有了對象,它只是在這個類中"寄居",不需要通過類的構造器(構造函數)類實現實例化;而非靜態的屬性或者方法,在類的裝載是並沒有存在,需在執行了該類的構造函數後才可依賴該類的實例對象存在。所以在靜態方法中調用非靜態方法時,編譯器會報錯(Cannot make a static reference to the non-static method func() from the type A)。
不知這么說你懂了沒,如果還有什麼不懂可以繼續問我。
㈢ java 普通方法可以直接調用靜態方法嗎
可以的,因為創建對象的時候必然載入了
靜態方法
,所以普通方法可以調用。但靜態方法不能訪問普通方法,因為不能保證內存中分配了普通方法的空間
㈣ java如何調用靜態方法中的值
你這寫的啥東西哦。。。
1、你是想獲得他的返回值 ,那你返回值咋是void。。。
2、你是get,你傳參數進去幹嘛
public static String getStr(){
String a="test";
return a;
}
public static void main(String[] args){
String str=getStr();
System.out.println(str);
}
㈤ Java中,靜態方法能調用靜態變數么用(類名.靜態變數)方法
可以的。
一個類的
靜態函數
可以調用這個類的靜態函數、
靜態變數
(公有和私有都可以),
以及其他類的公有
靜態函數和靜態變數。
㈥ java本類的靜態方法如何直接調用,其他類的靜態方法如何調用
java本類的靜態方法,直接使用靜態的方法名傳入參數就可以了,如果是其他類的,許可權修飾符必須是public否者無法調用,調用方法是
其他類的類名
.
方法名(參數)