JAVA基礎面向對象分析

面向對象內存的分析:java

一:內存的分類ide

1:棧(tack)函數

2:堆(heop) this

3: 靜態區對象

4:代碼區繼承

二:引用數據類型內存特色接口

三:引用數據類型傳值的特色內存

四:引用數據類型在做爲參數時的特色get

 

 

面向對象的基礎模板

一:三大特徵

1:封裝(抽象)(封裝就是定義一個類,而後給該類的屬性和方法加上訪問控制修飾符 public private..)

2:繼承

      2.1:父類(基類 超類)

      2.2:子類

                2.2.1:子類在同一個包下,能夠訪問父類除了私有private修飾的全部屬性和方法

                2.2.2:在不一樣包下,子類只能訪問public修飾的屬性和方法

                2.2.3:子類內部,不一樣包狀況下,能夠訪問protected修飾的屬性和方法,可是不能訪問默認的修飾符修飾的屬性和方法

                2.2.4:子類在初始化時,會先調用父類默認不帶參數的構造器,若是沒有報錯,只有修改

                             1.將父類添加一個無參數的構造器
                             2.子類構造器中手動使用 super() 聲明調用哪一個父類的構造器

       2.3: extends

3:多態(運行時加載)

       3.1:繼承

       3.2:重寫

       3.3:父類引用指向子類對象

 

二:類(簡單理解就僅僅只是一個模板)

1:成員變量,全局變量,屬性 (當對象初始化以後,成員變量就會有初始值

                             String null
                              整型 0
                            浮點型 0.0
                           boolean false
                            char (char)0)

2:行爲,動做,函數,方法全部和動做相關的,都應該放入到方法中)

3:經過類建立對象(new)

 

三:對象

1:對象是類的實例

2:也具備屬性和方法

3:對象都是屬於某個類

4:一切皆對象

5:每一次(new)都會產生一個新的對象

 

四:重要的知識點和關鍵字

1:(this) 

      1.1:表明當前對象自己

      1.2:有時候須要把當前調用對象進行傳遞,那麼就可使用(this)替代當前調用對象

      1.3:在構造器中可使用 this(參數)調用本類其餘構造器

2:(super)

      2.1:  指代父類

      2.2:super()調用父類的構造器

      2.3:super()若是放在子類中調用,只能放在子類構造器代碼的第一行

      2.4:使用super()點 能夠在子類中調用父類中的方法

3:重載(是指一個類中具備相同的方法名稱,可是參數列表不一樣)

4:重寫(override)

  4.1:繼承

  4.2:子類重寫父類的方法

  4.3:方法名,參數類型,參數個數,返回值同樣

  4.4:只是方法名同樣,其餘的有不同,就是子類的重載

  4.5:注意 父類private修飾的方法,子類不能重寫

  4.6:子類重寫方法的訪問修飾符可見度,必須比父類方法的訪問修飾符可見度高或者同樣

5:instanceof(判斷某個對象是不是某個類型)

6:對象轉型

  6.1:轉型條件

    6.1.1:有繼承關係

    6.1.2:有互相引用

    6.1.3:要把父類轉型爲子類,父類型必須包含子類型

  6.2:上轉型

  6.3:下轉型

7:(new)

  7.1:只要使用 new 關鍵字,就是建立一個新的對象

  7.2;要注意一個問題,不要以爲有時候參數須要一個對象,就直接 new 一個對象傳過去

8:構造方法(構造器,構造函數)

9:訪問修飾符

  9.1:public(公開的)

  9.2:private(私有的,只能在類的內部使用)

  9.3:protected(受保護的,在不一樣包下面的訪問規則和public不同,不一樣包不能夠訪問.在不一樣包下繼承時,與friendly不一樣)

  9.4:friendly(默認的,在不一樣包下面的訪問規則和public不同,不一樣包不能夠訪問.)

  9.5:可見度(public>protected>friendly>private)

10:javabean

  10.1:全部屬性都是private

  10.2:爲每一個屬性創建setter和getter方法

  10.3:這個其實就是爲了之後裝數據用的一個類

11:final

  11.1:常量不能進行自增和自減

  11.2:final修飾類不能被繼承

  11.3:final修飾方法不能被重寫

12:static

  12.1:靜態的屬性和方法屬於整個類

  12.2:靜態的值只有一個(基本數據類型能夠看出此特色)

  12.3:靜態的值只會初始化一次(引用數據類型)

  12.4:靜態屬性方法或靜態塊會在JVM加載的時候就加載了

  12.5:通常狀況靜態的常量屬性,咱們通常書寫爲 public static final 數據類型 大寫常量名=值

13:類和類的關係

  13.1:組合(緊密has-a,一個類是另外一個類的屬性)

  13.2:依賴(use-a 一個類是另一個類方法的參數)

14:object(全部類的父類)

15:抽象類

  15.1:abstract

  15.2:抽象類不能夠用new關鍵字實例化,實例化一個抽象類沒有任何意義、

  15.3:抽象類不能實例化可是有構造器

  15.4:抽象類和抽象方法,必須被abstract修飾

  15.5:若是要用抽象類,可使用多態

  15.6:抽象類是用來被繼承的,抽象方法就是用來實現的,實現多態

16:抽象方法

  16.1:抽象方法必定在抽象類中

  16.2:不能被private修飾

  16.3:不能被static修飾

  16.4:沒有{ }

  16.5:子類必須實現抽象方法

17:接口(interface)

  17.1:implements

  17.2:接口中的變量全是靜態變量

  17.3:接口中的方法默認是公開抽象(public abstract),就算不寫,也會自動加上

  17.4:jdk 1.8 之後能夠手動聲明默認方法和靜態方法

  17.5:接口能夠多實現,一個類能夠實現多個接口

  17.6:接口與接口之間使用extends

  17.7:一個子類能夠繼承一個父類,實現多個接口

  18.8:接口沒有構造器

相關文章
相關標籤/搜索