Java靜態方法的使用,Java靜態方法使用

來源:互聯網
上載者:User

Java靜態方法的使用,Java靜態方法使用

我們可以看到Java中得main方法都是static的。這個static有什麼特性呢?

往往一個執行個體class需要instantiate得到一個執行個體才能用其中的method以及variable。


而static的方法並不是tied to這個執行個體class的,也就是說instantiate得到的執行個體並不能使用這個方法,而是直接通過class名字加點加方法名就可以了。

static的方法調用的也必須是static的,因為在還沒有instantiate之前,非static得方法根本還不“存在”,所以是無法找到和使用的。

因此java程式一運行就會去找main函數,然後main函數裡面調用的方法也必須是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中的靜態方法是什?

靜態方法是使用公用記憶體空間的,就是說所有對象都可以直接引用,不需要建立對象再使用該方法。
例如,我建立一個類,裡面有一個靜態方法:
class Test{
public static int z(int xx,int yy){
return xx+yy;
}
public int zz(int xx,int yy){
return xx+yy;
}
}
然後在含有main方法的類中使用這個類時,對與以上非靜態和靜態方法的引用方式是不同的,如下:

import Test;
public class mainClass{
int sum;
public static void main(String args[]){

sum=Test.z(1,2); //直接用 類.方法或者屬性就可以使用該方法或屬性。

System.out.println(sum);
Test t=new Test();
sum=t.zz(1,2); //因為zz不是靜態方法,所以只能只能用Test類建立一個t對象,然後調用該對象的方法。
System.out.println(sum);
}
}
ls他們說的也是有道理的,靜態方法只能被靜態方法調用。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.