大數據之路week01--自學之面向對象java(static,this指針(初稿))

 

函數的重載 返回值不同會報錯java

 

java中,若是本身定義了構造函數的話,它就不會給你默認一個無參函數程序員

 

若是一個屬性,只進行定義,不初始化,自動補0,
若是是一個布爾屬性,默認是false
可是若是一個局部變量只定義不進行初始化,它就是個垃圾值,報錯!數組

 

Java把內存劃分爲4個部分 1. 代碼區 一、棧區 三、堆區 四、靜態區域
一、棧區(stacksegment)—由編譯器自動分配釋放,存放函數的參數值,局部變量的值等,具體方法執行結束以後,系統自動釋放JVM內存資源
二、堆區(heapsegment)—通常由程序員分配釋放,存放由new建立的對象和數組,jvm不定時查看這個對象,若是沒有引用指向這個對象就回收
三、靜態區(datasegment)—存放全局變量,靜態變量和字符串常量,不釋放
四、代碼區(codesegment)—存放程序中方法的二進制代碼,並且是多個對象共享一個代碼空間區域jvm

 

this指針:(實際上,每一個非static方法中都隱含這一個this指針
指向當前正在調用該方法的對象。)函數

 


static(靜態的):
若是在一個屬性的前面加上static ,那麼這個屬性就不是某一個對象的了,而是N個對象共用的了。在靜態區存放,不釋放。
static屬性變量是屬於類自己的,沒有對象咱們仍然能夠經過類名的方式進行訪問該類內部的static屬性。(static方法也能夠)
(注意:一、類能夠直接調用,實例化出來的對象固然也能夠進行調用。
理解:模型均可以,模型造的對象固然能夠。
二、加上static的確是屬於類自己的,可是要去訪問它必須控制符是非私有的,若是控制符是私有的,則不能直接經過類名進行訪問!!
理解:private static void a(){} private static int i;都是不能夠直接經過類名進行訪問,由於前面的控制符是private
三、非靜態的方法能夠訪問靜態成員,反之不能夠。非私有的靜態成員才能經過類名直接調用。
理解:靜態的方法和靜態的變量屬於類自己,不是靜態的方法必須經過對象進行調用,在實例化對象的同時也包含了靜態的方法,固然能夠。
反之不能夠。)
class A{
public static int i;
}post

 

class M{
public static void main(String[] args){
System.out.printf("%d\n",A.i);
}
}this

相關文章
相關標籤/搜索