黑馬程式設計師 物件導向

2021-06-28 21:07:50 字數 1519 閱讀 2333

物件導向是一種思想,把複雜事物簡單化,把面向過程的執行者變成了指揮者。過程其實就是函式,而物件將函式和一些內容封裝。把事物的屬性和行為封裝成物件,再把物件抽象成類。

類的訪問修飾符有public和final。而成員的修飾符有public private protected  static 。

成員變數和區域性變數的區別:成員變數定義在類內方法外,在本類中有效,存在於堆記憶體;而區域性變數存在於方法中、引數上、語句中,在定義時到大括號有效,存在於棧記憶體。

建構函式和普通函式的區別:建構函式與類同名,沒有返回值,只在建立物件的時候呼叫一次;普通函式有返回值,可由物件多次呼叫。

構造**塊是給所有物件初始化,而建構函式則是給相對應的物件初始化。

person  p=new person(); 在記憶體中:1,先找到person的位元組碼檔案,載入到記憶體。2,執行main方法時會在棧記憶體中開闢一片空間,在棧區中分配了乙個變數p。3,在堆記憶體中開闢實體空間,並分配乙個記憶體首位址值。 4,在空間中進行屬性的空間分配,並進行預設初始化。5,對空間中的屬性進行顯示初始化。6,屬性進行構造**塊初始化。7,呼叫該實體對應的建構函式進行建構函式初始化。8,把首位址值賦給p,則p指向了該物件。

封裝用於隱藏物件的實現細節。僅對外提供公共訪問方式。好處是將變化隔離,提高復用性,安全,便於使用。

static:所有物件共享的成員可以用靜態修飾,成員可以用物件、也可以用類名呼叫。靜態隨著類的載入而存在,優先於物件,所以在靜態方法中不能存在非靜態成員。this和super也不可以。  好處是:節約記憶體   弊端是:存在時間太長。

this和super不可以同時出現在建構函式中,因為它們都只能在第一行。子類的建構函式中,第一行預設是super(),即呼叫父類的空參建構函式,若父類沒有空參建構函式,則需顯示的呼叫相應的父類建構函式。子類之所以呼叫父類的建構函式,是因為子類繼承了父類的成員,要通過呼叫父類構造方法來檢視父類成員的初始化情況。

繼承是「is a」,實現介面是「like a」。

子類方法覆蓋父類方法時,訪問許可權應該大於等於父類,丟擲的異常應小於等於父類異常。

繼承打破了封裝性,所以一些不想被繼承的類,或者一些不想被覆蓋的方法可以用final來修飾。final可以修飾類、方法、變數。

抽象類:抽象類、抽象方法須由abstract修飾。方法只能宣告,沒有方法體。抽象類不可以被建立物件(但是有構造方法,可以給子類進行初始化)。而且抽象類中可以定義非抽象方法。抽象關鍵字不可以和static、private、final。

介面:inte***ce,介面中的成員都有固定的修飾符。成員函式:public abstract    成員變數:public  static  final。 子類可以單繼承,但是可以多實現。實現介面必須重寫所有的抽象方法,否則類將抽象,無法建立物件。

介面是對外提供的規則,是功能擴充套件,降低了耦合性。

多型:事物的多種形態。前提是必須要有關係:繼承或者實現,通常會有覆蓋操作。 好處:提高了擴充套件性。 弊端:自能訪問父類中存在的方法,不可以訪問子類中特有的方法。多型就是父類的引用接收了子類的物件。

在多型當中,成員變數、靜態函式編譯執行都看左邊。 成員函式編譯看左邊,執行看右邊。

黑馬程式設計師 物件導向

物件導向 1 物件導向 是基於面向過程的一種思想。面向過程 以函式為基礎,關注實現過程。物件導向 以物件為基礎,關注實現結果。2 物件導向的思想特點 a 是一種更符合人們思考習慣的思想。b 把複雜的事情簡單化了。c 把我們從執行者變成了指揮者。舉例 買電腦。洗衣,做飯。旅遊。把大象裝進冰箱。體現 c...

黑馬程式設計師 物件導向思想

物件導向的思想 誰有資料,誰就對外提供操作這些資料的方法。例子1 人在黑板畫圓 public class circle private int radius 1 public circle circlecenter,radius public void draw int circlecenter,i...

黑馬程式設計師 物件導向學習

1.類 物件。人 是類,張三 是 人 這個類的物件。類是抽象的,物件是具體的。按鈕就是類,某個按鈕就是物件。物件可以叫做類的例項 instance 類就像int,物件就像10。欄位field 和某個物件相關的變數 字段就是類的狀態。人這個類有姓名 年齡 身高等字段。類不佔記憶體,物件才佔記憶體。2....