面向对象(特点)、局部变量与全局变量的区别、匿名对象、构造函数、
一、
? ? 1,本文檔為記錄練習面向對象學習的文檔。
? ? 2: 面向對象的三大特點: 1)、封裝:隱藏對象的屬性和實現細節,僅對外提供公共訪問方式,
? ? ? ? ? ? ? ?優點:1、隔離了變化。 2、便于使用,提高了復用性。 3、提高了安全性。
? ? ? ? ? ? ? ?原則:1、把不必要對外顯示的都隱藏掉。 2、對外提供必要的公共方法作為操作接口。
? ? ? ? ? ? ? ? ? ? (私有是封裝的一種表現形式)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2)、繼承:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3)、多態: 必須有 繼承 、動態方法的重寫 、父類引用指向子類的對象。
? ? ?3:面向對象的開發就是在尋找對象使用, 在沒有對象使用的情況下, 我們應當自己創造對象使用。
? ? ? ? ? 也可以說是: 找對象 建立對象 使用對象 維護對象之間的關系。
二、對象與類之間的關系
? ? ? ?類: 現實生活中對事物的描述。
對象: 這一類事物的實實在在的個體。
生活中有有一類個體:他們都會拿槍、射擊、穿迷彩服、越野、殺敵等功能。------這就是一個軍人的類。 類有屬性(成員變量)和方法(動態屬性)。
而具體到個體: 士兵1號、士兵2號、士兵3號等 就是這個類中的具體實體-----這就是一些士兵的對象。
而映射到java中 ,這些描述就是class定義的一個類
具體的對象, 就是new關鍵字在堆(heap)中創建的實體。
三 成員變量 與 局部變量
作用范圍: 成員變量 作用于整個類的內部
局部變量 作用于方法或者語句塊之中
內存中的位置 : ? 成員變量 存在于堆內存中,因為對象的存在而存在。 會先有系統的默認初始化(0 null), 之后才是我們定義個顯示初始化。
在沒有引用指向其對象的時候(及變成垃圾對象),被垃圾回收機回收后消失。
局部變量 存在于棧內存中,因為語句的執行而存在。 必須人工給予初始化,否則次變量不能使用。相關語句執行完畢后自動消失。
?
四、 匿名對象
如: new Car(); new Car().color = "blue"; new Car().runCar();
特點:只能使用一次, 使用之后便會變成垃圾, 等垃圾回收機回收清空內存。
匿名對象調用其屬性沒有意義, 調用其方法具有一定的意義。
使用情況:1)、只對對象的 方法 進行 一次調用 的時候。 這樣寫比較簡便。 如果要對對象的多個成員進行調用,就必須給對象命名。
??2)、可以將匿名對象當成參數緊傳遞。
?
構造函數:
特點:函數名與類名一致, 不能定義返回值類型, 不能使用return語句。 對象建立時就會調用與之實參相對應的構造函數。
構造函數只在構造是調用一次,之后不能重復調用, 而普通函數可以一直調用。
作用:給對象進行初始化(在默認初始化和顯示初始化之后)。
注意:1、當沒有寫構造函數時,系統會自動給加上一個空參、空語句的構造函數, 否則,對象不能被構造出來。
? 2、當自定義了構造函數時,在new新對象時就必須按照相對應的形參進行創建。
? 3、當有多個構造函數存在時,它們以重載的方式存在, 通過new對象時傳入的參數(實參)的不同來調用相應的構造函數。
? ? ? ? ? ? 在一個構造函數中可以調用(轉到)另一個構造函數。
轉載于:https://www.cnblogs.com/soficircle/p/6602214.html
總結
以上是生活随笔為你收集整理的面向对象(特点)、局部变量与全局变量的区别、匿名对象、构造函数、的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 下环境变量设置
- 下一篇: map key char*