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