淺談java面向?qū)ο?類,封裝,this,構(gòu)造方法)
無(wú)論面向?qū)ο筮€是面向過(guò)程, 這倆都是解決問(wèn)題的思路而已, 只是角度不同.
面向過(guò)程:
強(qiáng)調(diào)解決問(wèn)題的每一個(gè)步驟都親力親為,每一個(gè)細(xì)節(jié)都自己手動(dòng)實(shí)現(xiàn).
面向?qū)ο螅?/strong>
使用特定功能對(duì)象去解決特定的問(wèn)題, 每一個(gè)細(xì)節(jié)不需要關(guān)注,只需要?jiǎng)?chuàng)建對(duì)應(yīng)的對(duì)象即可.
面向?qū)ο笫腔诿嫦蜻^(guò)程的
類和對(duì)象及他們的關(guān)系
類: 具有相同特征和行為(功能)的事物的統(tǒng)稱 , 是一個(gè)抽象概念
對(duì)象: 這類事物中某個(gè)確定的個(gè)體
類和對(duì)象的關(guān)系
一個(gè)類可以創(chuàng)建多個(gè)對(duì)象 , 類是對(duì)象的抽象, 對(duì)象是類的實(shí)例.
描述一個(gè)事物----> 類
特征----> 成員屬性(成員變量)
行為(功能)---> 成員方法
類的創(chuàng)建格式:
修飾符 class 類名{
數(shù)據(jù)類型 成員變量名1;
數(shù)據(jù)類型 成員變量名2;
數(shù)據(jù)類型 成員變量名3;
...
成員方法1;
成員方法2;
成員方法3;
...
}
修飾符: public
類名: 標(biāo)識(shí)符 見(jiàn)名知意
成員變量列表: 事物的特征 ,只寫(xiě)當(dāng)前場(chǎng)景關(guān)注的特征,沒(méi)必要把事物的所有特征全都寫(xiě)上 . 寫(xiě)法類似于定義變量
成員方法: 事物的行為(功能) 只寫(xiě)當(dāng)前場(chǎng)景關(guān)注的行為(特征) 寫(xiě)法上類似于之前的定義方法, 區(qū)別在于此時(shí)寫(xiě)的話要去掉static
當(dāng)一個(gè)類第一次使用的時(shí)候要載入到方法區(qū) , 后續(xù)每一次再使用這個(gè)類 就不需要重復(fù)載入
成員變量和局部變量區(qū)別
1.定義的位置不同
局部變量: 定義在方法的內(nèi)部
成員變量: 定義在類的內(nèi)部, 方法的外部
2.在內(nèi)存中的存放位置不同
局部變量: 局部變量存放在 棧區(qū)
成員變量: 成員變量存放在 堆區(qū)
3.生命周期不同
局部變量: 隨著方法的調(diào)用而產(chǎn)生,隨著方法的結(jié)束而消失 相對(duì)較短
成員變量: 隨著對(duì)象創(chuàng)建而產(chǎn)生,隨著對(duì)象數(shù)據(jù)回收而消失 相對(duì)較長(zhǎng)
4.初始值不同
局部變量: 沒(méi)有初始值, 使用之前必須進(jìn)行賦值
成員變量: 有初始值, 引用類型 null, 整數(shù) 0 , 小數(shù)0.0 字符:空格, 布爾 false
封裝性
封裝是 面向?qū)ο蟮娜筇卣髦唬?另外兩個(gè)是繼承 多態(tài)
類名:Person
屬性:name ,age
方法:展示
封裝好處: 提高程序的安全性
對(duì)屬性封裝的步驟:
1.使用private關(guān)鍵字修飾對(duì)應(yīng)的屬性 , 防止外界通過(guò)對(duì)象名.屬性的方式直接訪問(wèn)屬性
2.書(shū)寫(xiě)對(duì)應(yīng)屬性的set和get方法 , 給外界一個(gè)訪問(wèn)屬性的通道
封裝是面向?qū)ο缶幊陶Z(yǔ)言對(duì)客觀世界的模擬,客觀世界里成員變量都是隱藏在對(duì)象內(nèi)部的,外界無(wú)法直接操作和修改。
封裝的原則:
將不需要對(duì)外提供的內(nèi)容都隱藏起來(lái)。
把屬性隱藏,提供公共方法對(duì)其訪問(wèn)。
成員變量private,提供對(duì)應(yīng)的getXxx()/setXxx()方法
好處:
通過(guò)方法來(lái)控制成員變量的操作,提高了代碼的安全性
把代碼用方法進(jìn)行封裝,提高了代碼的復(fù)用性
變量訪問(wèn)的就近原則:
當(dāng)出現(xiàn)多個(gè)重名變量的時(shí)候, 目標(biāo)代碼使用的是離這行代碼最近的那個(gè)變量
this可以解決的問(wèn)題:
當(dāng)局部變量和成員變量重名的時(shí)候, 想在特定的代碼處訪問(wèn)成員變量, 就可以在目標(biāo)行的變量名前面加this.
this只的是當(dāng)前調(diào)用這個(gè)方法的對(duì)象
this 誰(shuí)調(diào)用指的就是誰(shuí)
構(gòu)造方法
是一個(gè)方法. 作用: 給對(duì)象的數(shù)據(jù)賦值默認(rèn)值
定義格式:
修飾符 方法名(參數(shù)列表){
若干條初始化語(yǔ)句
}
修飾符: public
方法名: 直接寫(xiě)類名
參數(shù)列表: 跟之前定義方法寫(xiě)形式參數(shù)一致
注意 構(gòu)造方法 沒(méi)有返回值類型
如果我們自己不手動(dòng)寫(xiě)無(wú)參數(shù)的構(gòu)造方法, 系統(tǒng)會(huì)默認(rèn)提供一個(gè),如果我們自己手動(dòng)書(shū)寫(xiě)了無(wú)參的構(gòu)造方法,
那系統(tǒng)就不會(huì)給提供,使用的時(shí)候直接使用我們自己寫(xiě)的構(gòu)造方法
構(gòu)造方法 也是方法 也可以進(jìn)行重載
但凡我們手寫(xiě)了任意的構(gòu)造方法, 系統(tǒng)就都不會(huì)給提供無(wú)參構(gòu)造方法了 ,
當(dāng)此時(shí)非要用無(wú)參的構(gòu)造方法創(chuàng)建對(duì)象的時(shí)候, 必須自己手寫(xiě)無(wú)參的構(gòu)造方法
以上這篇淺談java面向?qū)ο?類,封裝,this,構(gòu)造方法)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring中的動(dòng)態(tài)數(shù)據(jù)源解讀
這篇文章主要介紹了關(guān)于Spring中的動(dòng)態(tài)數(shù)據(jù)源解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Springboot之修改啟動(dòng)端口的兩種方式(小結(jié))
這篇文章主要介紹了Springboot之修改啟動(dòng)端口的兩種方式(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析
這篇文章主要介紹了Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08解決IDEA2020.1.2IDEA打不開(kāi)的問(wèn)題(最新分享)
由于idea安裝多了某個(gè)jar,點(diǎn)擊出現(xiàn)讀條后閃退情況,接下來(lái)通過(guò)本文給大家分享解決IDEA2020.1.2IDEA打不開(kāi)的問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,感興趣的朋友跟隨小編一起看看吧2020-07-07SpringBoot配置自定義攔截器實(shí)現(xiàn)過(guò)程詳解
在系統(tǒng)中經(jīng)常需要在處理用戶請(qǐng)求之前和之后執(zhí)行一些行為,例如檢測(cè)用戶的權(quán)限,或者將請(qǐng)求的信息記錄到日志中,即平時(shí)所說(shuō)的"權(quán)限檢測(cè)"及"日志記錄",下面這篇文章主要給大家介紹了關(guān)于在SpringBoot項(xiàng)目中整合攔截器的相關(guān)資料,需要的朋友可以參考下2022-10-10Java的微信開(kāi)發(fā)中使用XML格式和JSON格式數(shù)據(jù)的示例
這篇文章主要介紹了Java微信開(kāi)發(fā)中使用XML格式和JSON格式數(shù)據(jù)的示例,注意一下json-lib所需要的jar包,需要的朋友可以參考下2016-02-02使用maven-archetype-plugin現(xiàn)有項(xiàng)目生成腳手架的方法
這篇文章主要介紹了使用maven-archetype-plugin現(xiàn)有項(xiàng)目生成腳手架的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Java實(shí)現(xiàn)發(fā)送手機(jī)短信語(yǔ)音驗(yàn)證功能代碼實(shí)例
這篇文章主要介紹了Java實(shí)現(xiàn)發(fā)送手機(jī)短信語(yǔ)音驗(yàn)證功能代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09