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


靜態方法和非靜態方法的區別總結如下:
1、靜態方法屬於類所有,類實例化前即可使用;
2、非靜態方法可以訪問類中的任何成員,靜態方法只能訪問類中的靜態成員
3、因為靜態方法在類實例化前就可以使用,而類中的非靜態變量必須在實例化之后才能分配內存
4、static內部只能出現static變量和其他static方法!而且static方法中還不能使用this等關鍵字,因為它是屬於整個類;
5、靜態方法效率上要比實例化高,靜態方法的缺點是不自動進行銷毀,而實例化的則可以做銷毀;
6、靜態方法和靜態變量創建后始終使用同一塊內存,而使用實例的方式會創建多個內存。
主要區別:靜態方法在創建對象前就可以使用了,非靜態方法必須通過new出來的對象調用。
如:
public class Per{
public static String getType(){
return "人類";
}
public String getName(){
return "張三";
}
}
上面這個類中的getType方法,在沒有new對象前這就可以這樣用:
String type=Per.getType();//type="人類";
而getName方法則不能這樣使用,編譯都不會通過
getName必須這樣:
Per p=new Per();
String name=p.getName();//name="張三";
當然,getType方法也可能通過對象調用:
String type=p.getType();//type="人類";

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM