java靜態函數
㈠ java中寫靜態函數有什麼意義
加分。我幫你問答!恩。不知道你了解java的內存機制不。首先在java里被聲明為靜態的。jvm會把這個屬性或者是方法。的內存地址開辟在靜態常量池中。而不是存放在所聲明類中的堆中。所以不能通過對象名來訪問。那麼怎麼來訪問這個靜態的屬性或者是方法。通過類名來訪問。而且在static聲明的類裡面。可以不要用通過類名來訪問。這是為什麼呢。其實在本類裡面當你要訪問這個屬性或者是方法的時候。其實前面隱顯加上了this關鍵字。現在來講main()方法:main函數是一個程序的入口jvm只會找你的main()。但是為什麼main()一定要聲明為static類型的呢?因為jvm在調用main()的時候沒有newmain()所以類的對象出來但是那怎麼來調用main()呢所以java裡面的main()限制了一定要聲明為static類型的這樣就可以通過類名.main()來調用了而不是用對象名.main()來調用本人覺得main()一定要聲明為static類型的的原因之一就是jvm在掉你的main()時沒必要newmain()所以的類的對象了,這樣可以節約內存!
㈡ Java中的靜態方法是什麼
靜態方法是在類中使用staitc修飾的方法,在類定義的時候已經被裝載和分配。
靜態方法為類所有,可以通過對象來使用,也可以通過類來使用。
我們之前一直寫的mian方法仔細看看,它就是一個靜態方法,靜態方法使用如下:
㈢ java中什麼是靜態方法
若類的方法前加了static關鍵字,則該方法稱為靜態方法,反之為實例方法。靜態方法為類所有,可以通過對象來使用,也可以通過類來使用。但一般提倡通過類名來使用,因為靜態方法只要定義了類,不必建立類的實例就可使用。靜態方法只能調用靜態變數。
㈣ JAVA 靜態變數、靜態函數、靜態代碼塊
靜態變數、函數、代碼塊,當聲明類對象時,靜態變數已經被載入了,靜態函數只有調用時才被載入,而靜態函數只能調用靜態成員,故靜態成員先載入。
整個程序生命周期
存在堆中
㈤ java靜態方法怎麼寫
舉例:
publicclassXXX{
publicstaticvoidhelp(){
System.out.println("Welcome!");
}
}
其中的help方法就是靜態的。主要是加了「static」關鍵字。
㈥ JAVA中使用靜態方法
編程時我們心裡一定要清楚靜態方法和類的非靜態方法方法的區別:
最根本區別從編譯角度來說吧:
1)靜態(static)方法是編譯時直接載入載入到內存中(離cpu最近的一塊內存區域也稱為堆棧),比如程序的public static main(args []){}方法,你能實例話嗎?
靜態方法不能被實例化,也不允許被實例化!
現在很多Java集成工具邊寫邊編譯的
因此 你可以通過「類名」+「.」+「靜態方法的名()」來調用
2)非靜態方法(類的非靜態方法)通過關鍵字 「new」 字來實例化一個對象(object),這個對象放在 內存的另一塊區域 堆(heap)中。
也就是說編譯時,非靜態方法必須先實例化類的一個對象,通過「對象名」+「非靜態方法名()」來調用;
public class Student
{
private String name;
/************************************************************
*下面兩個方法是類的非靜態方法封裝 屬性name,看一下在 main()
*如何調用
************************************************************/
public set(string init_name)
{
this.name = init_name;
}
publc String get()
{
return this.name;
}
//構造函數
public Student(){}
public Student(String init_name)
{
this.name = init_name;
}
//下面是一個靜態方法,看一下它在main()中如何調用
public static void PrintClassName()
{
System.out.print("該類的名字:Student");
}
}
//MainClass類
pubic class MainClass
{
public static void main(args[])
{
//先調用靜態方法,不需要實例化對象
Student.PrintClassName();
//現在調用非靜態方法,一定要實例化對象
Student stu1 = new Student();
stu1.set("Join");
String stu1_name = stu1.get();
}
}
㈦ java中,什麼是靜態方法
首先靜態方法是用static來修飾的
靜態方法就是可以不通過生成類的實例直接來調用的
舉個簡單的例子:
class
A
{
public
static
void
a()
{
System.out.println("A被調用");
}
public
void
b()
{
System.out.println("B被調用");
}
}
假設你要調用方法a和方法b
如果調用方法a可以直接A.a();就可以了
不需要先
A
aa
=
new
A();aa.a();
但是調用b則必須A
aa
=
new
A();aa.b();
還有在繼承裡面要注意:
如果B繼承自A
而且B中和A中都包含相同的函數
如果是實例方法則是被B覆蓋掉的
如果是靜態方法則是被B隱藏掉的
這一點
在上溯機制中可能遇到
最後還有一點靜態方法調用的方法一定也要是靜態的
㈧ java中的main函數為什麼是靜態的
main函數
其實也是所在類的一個方法,就比如一個類是test,那麼該類的main其實就是test.main(String[]
args),眾所周知如果一個方法不是靜態的,則要先
實例化
該類,比如要這樣
A
a=new
A();
然後才能調用
a.main();
而這對於運行一個程序的
主函數
來說是不現實的,所以比如把main函數定義為static,使a.main()可以直接被調用。
因此,java規定了main函數必須是靜態的