什麼時面向對象?
由於現實社會是由各種各樣的事物所組成的,而我們編程又是在模擬現實社會,那麼在程序也要用一些東西來表示現實社會中的事物,這些東西就是程序中的對象。我們在程序中使用這些對象,對其特徵和行爲進行操作進行編程,這就是面向對象編程。
面向對象編程的優點
提高代碼複用性。
使用者無需關心具體細節。
轉變程序員角色,更加符合人的思維習慣。
什麼是類
類是用來描述對象的。由於對象是虛擬出來的東西,是看不見摸不着的,我們需要在程序中使用對象,就需要用一種方式來描述對象,然後根據這個描述來創建對象。
類和對象的關係
對象是類的實例,類是對象的描述。
對象的創建
用new 關鍵字和對象名來創建對象
例:person p = new person( );
這句話先在堆內存中創建了一個對象,然後棧內存中創建一個變量引用了對象的地址。
匿名對象
匿名對象就是沒有名字的對象,是對象的簡寫格式
Car c2= new Car( );
c2.run( );
簡寫:new Car( ).r un ( );
當對象對方法進行一次調用的時候,可以使用匿名對象來簡化。當對對象的成員進行多次調用時,必須起名。
Car car=new Car( );
成員變量和局部變量的區別
1.定義的位置不同。
成員變量定義在類,作用於整個類
局部變量定義函數,作用於整個函數,或者定義在語句,作用於語句內。
2.內存出現的時間和位置不同
成員變量:當對象創建時,出現在堆內存的對象當中
局部變量:隨着所區間運算結束,立刻被釋放。
3.生命週期不同
成員變量:隨着對象的出現而出現,隨着對象的消失而消失。
局部變量:隨着所屬區間運算結束,立刻被釋放。
4.初始化值
成員變量:因爲在堆內存中,都有默認初始化值。
局部變量:沒有初始化值
成員變量的初始化
當一個對象被創建時,會對其中各種類型的成員變量自動進行初始化賦值。基本數據類型初始化值爲0,引用數據類型初始化值爲null。
對象的生命週期
對象的生命週期從new關鍵字創建時開始,到沒有任何引用到達對象時結束(成爲垃圾)。