1. 程式人生 > >java中靜態方法和非靜態方法的區別

java中靜態方法和非靜態方法的區別

靜態方法和非靜態方法主要有兩個區別:

1.在外部呼叫靜態方法時,可以使用"類名.方法名"的方式,也可以使用"物件名.方法名"的方式。而例項方法只有後面這種方式。也就是說,呼叫靜態方法可以無需建立物件。

2.靜態方法在訪問本類的成員時,只允許訪問靜態成員(即靜態成員變數和靜態方法),而不允許訪問例項成員變數和例項方法;例項方法則無此限制。

public class Per{
public static String getType(){
return "人類";
}
public String getName(){
return "張三";
}
}

上面類中的getType()方法在沒有初始化之前是可以通過類名.方法(Per.getType())呼叫的,而getName()方法則必須例項化之後才能呼叫這個函式

Per p=new Per();
String name=p.getName();

當然靜態方法在初始化之後也可以通過物件.方法呼叫

一旦靜態物件被初始化了,那麼他們永遠也不會再被初始化,也就是初始化只會執行一次!只會分配一次空間。