面向對象:
面向對象本身是一種思想,而非一種編程算法。
例如:
面向對象:冰箱打開、冰箱存儲、冰箱關閉
面向過程:打開冰箱、將大象放進去、關閉冰箱門
面向對象思想:強調的是對象(實體)
面向過程:C語言
面向對象:java、c++、c#、Python
面向對象:
1. 符合人們的思考習慣
2. 將複雜問題簡單化
3. 讓曾經在面向過程之中的執行者變成面向對象中的指揮者
類和對象之間的關係:
1. 類是模型 對象是該模型的實體(例如汽車的製造過程)
2. 用java語言對現實生活中的事物進行描述(通過類的形式來體現的)
3. 對於事物描述通常只關注兩方面,即屬性和行爲(有四個軲轆、能跑)
4. 只要明確該事物的屬性和行爲並定義在類中即可
對象:
1. 其實就是該類實實在在存在的個體,通過new創建
2. 在寫程序之前一定要先分析,例如寫汽車的類
1)要先分析汽車有哪些屬性(顏色、輪胎數),有哪些行爲(運行)
2)然後在具體的實例化
內存:堆內存(存儲對象)、棧內存(存儲臨時變量)
對象的內存體現:在堆內存中
對象的出現:爲封裝數據,和數組類似
局部變量和成員變量:
1. 成員變量定義在類中,整個類中都可以訪問
2. 局部變量定義在方法中,語句中,局部代碼塊中,在所屬的區域有效
3. 成員變量存在於堆內存的對象中
4. 局部變量存在於棧內存的方法中
5. 成員變量隨着對象的創建而創建,隨着對象的消亡而消亡
6. 局部變量是隨着自己所屬的區域變化
7. 成員變量都有默認初始化值,局部變量沒有初始化值
8. 局部變量和成員變量同名:局部變量將屏蔽成員變量
注意:編程序一定要注意代碼的清晰簡潔,代碼複用性
函數間參數傳遞分爲引用參數傳遞(堆)和基本參數傳遞(棧);注意當對象做參數的時候,也是引用參數傳遞類型
封裝:
1. 在面向對象中是指隱藏對象的屬性和實現細節,僅對外提供公共訪問接口
2. 提高安全性,對外提供訪問接口的目的是因爲屬性可控
實例:電腦主機
如屬性的get和set方法,在開發過程中,一般成員變量都是私有的,並且一定會伴有get和set方法