1.成員變量和局部變量
java
局部變量須要初始值,成員變量不須要(java自動賦值)對象
做用域不一樣作用域
成員: 變量
整個類的內部可見
程序
局部變量:僅限於定義它的方法
方法
成員變量不能夠重名聲明,局部變量在不一樣的方法中生命時能夠重名,im
局部變量和成員變量同名時,局部變量具備優先級(就近原則)static
2.構造方法img
new +() 就是類加構造方法 ,初始化類co
沒有返回值,方法名和類名相同
沒有構造方法就無法實例化對象;
有參和無參是並存的;
3.
Java 中被 static 修飾的成員稱爲靜態成員或類成員。它屬於整個類全部,而不是某個對象全部,即被類的全部對象所共享。靜態成員可使用類名直接訪問,也可使用對象名進行訪問。固然,鑑於他做用的特殊性更推薦用類名訪問~~
只能能用 public修飾使用 static 能夠修飾變量、方法和代碼塊。
一、 靜態方法中能夠直接調用同類中的靜態成員,但不能直接調用非靜態成員。
若是但願在靜態方法中調用非靜態變量,能夠經過建立類的對象,而後經過對象來訪問非靜態變量。
2.在普通成員方法中,則能夠直接訪問同類的非靜態變量和靜態變量
三、 靜態方法中不能直接調用非靜態方法,須要經過對象來訪問非靜態方法。如
在類的聲明中,能夠包含多個初始化塊,當建立類的實例時,就會依次執行這些代碼塊。若是使用 static 修飾初始化塊,就稱爲靜態初始化塊。
須要特別注意:靜態初始化塊只在類加載時執行,且只會執行一次,同時靜態初始化塊只能給靜態變量賦值,不能初始化普通的成員變量。
經過輸出結果,咱們能夠看到,程序運行時靜態初始化塊最早被執行,而後執行普通初始化塊,最後才執行構造方法。因爲靜態初始化塊只在類加載時執行一次,因此當再次建立對象 hello2 時並未執行靜態初始化塊。