面向對象
面向過程:對于面向過程思想,強調的是過程(動作)。
面向對象:對于面向對象思想,強調的是對象(實體)。
特點:
1,面向對象就是一種常見的思想。符合人們的思考習慣。
2,面向對象的出現,將復雜的問題簡單化。
3,面向對象的出現,讓曾經在過程中的執行者,變成了對象中的指揮者。
類與對象:
java語言對現實生活中的事物進行描述,通過類的形式來體現的。
對于事物描述通常只關注兩方面:一個是屬性,一個是行為。
只要明確該事物的屬性和行為并定義在類中即可。
類:事物的描述。
對象:該類事物的實例。在java中通過new來創建的。定義類其實就是在定義類中的成員。
成員:成員變量<-->屬性,成員函數<-->行為。
成員變量和局部變量的區別:
1,成員變量定義在類中,整個類中都可以訪問。
局部變量定義在函數,語句,局部代碼塊中,只在所屬的區域有效。2,成員變量存在于堆內存的對象中。
局部變量存在于棧內存的方法中。3,成員變量隨著對象的創建而存在,隨著對象的消失而消失。
局部變量隨著所屬區域的執行而存在,隨著所屬區域的結束而釋放。4,成員變量都有默認初始化值。
局部變量沒有默認初始化值。
匿名對象
匿名對象:沒有名字的對象 ,例如new Car(); 其實就是定義對象的簡寫格式。
匿名對象使用時需注意點:1,當對象對方法僅進行一次調用的時候,就可以簡化成匿名對象。
2,匿名對象可以作為實際參數進行傳遞。 例如show(new Car());
面向對象的特征一:封裝
封裝:是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。
好處:
將變化隔離。
便于使用。
提高重用性。
提高安全性。
封裝原則:
將不需要對外提供的內容都隱藏起來。
把屬性都隱藏,提供公共方法對其訪問。
PRivate:私有,是一種權限修飾符,用于成員變量,不可用于局部變量。
私有的內容只在本類中有效。
注意:私有僅僅只是封裝的一種體現而已,不私有也能完成封裝。
構造函數
構造函數:構建創造對象時調用的函數,作用:可以給對象進行初始化。
注:一個類中如果沒有定義過構造函數,那么該類中會有一個默認的空參數構造函數;如果在類中定義了指定的構造函數,那么類中的默認構造函數就沒有了。
一般函數與構造函數的區別:
構造函數:對象創建時,就會調用與之對應的構造函數,對對象進行初始化,會調用且只調用一次。
一般函數:對象創建后,需要該函數功能時才調用,可以被調用多次。
什么時候定義構造函數呢?
在描述事物時,該事物一存在就具備的一些內容,這些內容都定義在構造函數中。
特點:
1.函數名與類名相同。
2.不用定義返回值類型。
3.沒有具體的返回值。
作用:
給對象進行初始化。
注意:
1.默認構造函數的特點。
2.多個構造函數是以重載的形式存在的。(重載時注意函數名一致,并且對應位置上的參數類型不同為重載)
構造函數需要注意的細節:
1.構造函數只在初始化調用一次,一般函數可多次重復調用。
2.構造函數中可以包含一般函數,而一般函數不能直接調用構造函數,只有在一般函數中創建對象才能調用。
3.構造函數沒有返回類型,一般命名與類名一致為大寫。
4.創建對象只能在現有構造函數格式中創建,默認構造函數是指沒有定義構造函數的情況下。
5.構造函數中可以包含return,作為函數的結束的,一般情況下不需要。
新聞熱點
疑難解答