類的構成有以下部分構成: 代碼段 動態代碼段 靜態代碼
成員變量 靜態變量 局部變量 常量 成員方法 靜態方法 構造方法 this(對象) super(對象)下面對類里面的東西進行一一分析,可以更清晰的理解java類的構成代碼段:
一個完整的大括號就是一個代碼段,就代表了一段獨立的內存空間,空的也是個代碼動態代碼段: 1、就是沒有任何修飾的一對大括號{} 2、也就是寫記錄日志,還就是性能測試靜態代碼段: 1、用static修飾的一對大括號static{},是在類加載階段就運行的代碼段 2、寫日志用,用于記錄類被調用的時間的數據成員變量: 1、每個對象中的值都是不一樣,但是也可以一樣 2、保存的位置:堆內存,堆內存的大小是動態分配 3、賦值時間:一般情況下在實例化之前是空值,沒有賦值的 在實例化的時候賦值,調用對應的構造方法對成員變量賦值,也可以不賦值,編譯器會給默認值。通過調用成員變量進行賦值也可以 和局部變量的區別:局部變量必須聲明就賦值,要不然會報錯。 也是引用數據類型中,多態發生的時候 4、關聯關系:成員變量的值是另外一個類對象的引用 5、調用:對象名.成員變量名。類名不可以調用成員變量,靜態上下中不可以調用非靜態屬性靜態變量: 1、是屬于類級別的,每個對象中的都一樣 2、保存位置是靜態數據區 3、最好在聲明的時候就賦值 4、調用:類名.靜態變量名局部變量: 1、在方法中生命的變量是局部變量,并且生命的時候,就必須賦值 2、局部變量優先級大于成員變量的優先級 3、方法的形參列表也是局部變量 4、局部變量和循環體重的變量不可以重名 5、依賴關系:局部變量的值是另外一個類對象的引用常量: 1、聲明:public static final 數據類型 大寫_ = 值; 2、在整個軟件生命周期中,值不會改變 3、在接口中,psf可以省略 4、調用:類名.常量名成員方法: 1、沒有static修飾的方法叫成員方法 2、調用:對象名.成員方法名(實參列表); 3、多態:方法生命的時候,形參列表中是父類或是借口 調用的時候,傳的是子類對象的引用靜態方法: 1、用static修飾的方法 2、調用:類名.靜態方法名(實參列表); 3、保存在靜態代碼區中 4、不能再靜態方法中調用非靜態的成員屬性構造方法: 1、用于在類實例化中,創建當前類對象的方法(實例化當前類對象) 2、默認是:公共的,靜態的,沒有返回值的,名字和類名一樣的 3、在實例化中,一般用于實例化成員變量 4、注意: 單例模式中的使用 構造的重載,對不同的成員變量進行賦值 不可以被繼承復寫,但是可以被調用,super() 接口中沒有構造方法,因為接口就是用類實現的,不需要構造方法,接口不能被實例化 抽象類中有構造方法,用于子類實例化父類對象super()this(對象): 1 給成員變量加前綴,然后復制 2 用在構造方法中,重載調用本類中別的構造方法,this()重載調用的時候,必須寫在構造方法的第一行 3 用于表示本類的對象,里面保存了本類的地址,this位于堆內存中第一個內存片中 4 在堆內存中,我們有堆內存中第一個內存片的內存地址作為整個對象的內存地址,并且命名為thissuper(對象): 1 super代表的是當前子類對象中的父類型特征 2 在子類的構造方法重載調用父類別的構造方法的時候,必須寫在第一行 3 super()和this()不能重復出現 4 super可以用來調用父類的成員屬性和成員方法在上面的說明中,有兩個字出現的頻率很高:調用。其實類最主要的作用就是:代碼復用類對象之間的6中關系: 1 繼承 2 實現 3 依賴:局部變量是另外一個類對象的引用 4 關聯:成員變量是另外一個類對象的引用 5 聚合:類中的集合中的元素是另外一個類對象的引用 6 組合
新聞熱點
疑難解答