Java基礎五

Java基礎

面向對象

理解面向對象

面向對象是相對面向過程而言

面向對象和麪向過程都是一種思想

面向過程 強調的是功能行爲

面向對象 將功能封裝進對象,強調具備了功能的對象。

面向對象是基於面向過程的。

面向對象的特點

是一種符合人們思考習慣的思想

可以將複雜的事情簡單化

將程序員從執行者轉換成了指揮者

完成需求時:
先要去找具有所需的功能的對象來用。
如果該對象不存在,那麼創建一個具有所需功能的對象。
這樣簡化開發並提高複用。

面向對象開發、設計、特徵

開發的過程:其實就是不斷的創建對象,使用對象,指揮對象做事情。

設計的過程:其實就是在管理和維護對象之間的關係。

面向對象的特徵:
封裝(encapsulation)
繼承(inheritance)
多態(polymorphism)

類與對象的關係

使用計算機語言就是不斷的在描述現實生活中 的事物。

java中描述事物通過類的形式體現,類是具體事 物的抽象,概念上的定義。

對象即是該類事物實實在在存在的個體。

類的定義

生活中描述事物無非就是描述事物的屬性和行爲。
如:人有身高,體重等屬性,有說話,打球等行爲。

Java中用類class來描述事物也是如此
屬性:對應類中的成員變量。
行爲:對應類中的成員函數。

定義類其實在定義類中的成員(成員變量和成員函數)。

成員變量和局部變量的區別

成員變量:
成員變量定義在類中,在整個類中都可以被訪問。
成員變量隨着對象的建立而建立,存在於對象所在的堆內存中。
成員變量有默認初始化值。

局部變量:
局部變量只定義在局部範圍內,如:函數內,語句內等。
局部變量存在於棧內存中。
作用的範圍結束,變量空間會自動釋放。
局部變量沒有默認初始化值。

創建對象,使用對象

在這裏插入圖片描述

對象內存結構

在這裏插入圖片描述

匿名對象

匿名對象是對象的簡化形式

匿名對象兩種使用情況
當對對象方法僅進行一次調用的時
匿名對象可以作爲實際參數進行傳遞

封裝(Encapsulation)

封裝:是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。

好處:
將變化隔離。
便於使用。
提高重用性。
提高安全性。

封裝原則:
將不需要對外提供的內容都隱藏起來。
把屬性都隱藏,提供公共方法對其訪問。

private(私有)關鍵字

private關鍵字:
是一個權限修飾符。
用於修飾成員(成員變量和成員函數)
被私有化的成員只在本類中有效。

常用之一:
將成員變量私有化,對外提供對應的set ,get 方法對其進行訪問。提高對數據訪問的安全性。

構造函數

特點:

  1. 函數名與類名相同
  2. 不用定義返回值類型
  3. 不可以寫return語句
    作用: 給對象進行初始化。

注意:
當一個類中沒有定義構造函數時,,那麼系統會默認給該類加入一個空參數的構造函數。
當在類中自定義了構造函數後,默認的構造函數就沒有了

多個構造函數是以重載的形式存在的。

構造函數和一般函數在寫法上有不同。
在運行上也有不同。
構造函數是在對象一建立就運行,給對象初始化。
而一般方法是對象調用才執行,是給對象添加對象具備的功能。

一個對象建立,構造函數只運行一次
而一般方法可以被該對象調用多次。

當分析事物時,該事物存在具備一些特性或行爲,那麼這些內定義在構造函數中。

構造代碼塊

作用:給對象進行初始化。
對象一建立就運行,而且優先於構造函數執行。

和構造函數的區別:
構造代碼塊是給所有對象進行統一初始化。
而構造函數是給對應的對象初始化。

構造代碼塊中定義的是不同對象共性的初始化內容。

this關鍵字

特點:this代表其所在函數所屬對象的引用。
簡單說:哪個對象在調用this所在的函數,this就代表哪個對象。

什麼時候使用this關鍵字呢?
當在函數內需要用到調用該函數的對象時,就用this。
但凡本類功能內部使用了本類對象,都用this表示。

this語句用於構造函數間互相調用。
this語句只能定義在構造函數的第一行。因爲初始化要先執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章