詳解Java基礎(chǔ)篇--面向?qū)ο?(構(gòu)造方法,static、this關(guān)鍵字)
面向?qū)ο?,面向過(guò)程的區(qū)別。拿下五子棋來(lái)說(shuō):
面向過(guò)程分析:
- 開(kāi)始游戲
- 黑棋先走
- 繪制畫(huà)面
- 判斷輸贏
- 輪到白棋
- 繪制畫(huà)面
- 判斷輸贏
- 返回步驟2
- 輸出結(jié)果
面向?qū)ο蠓治觯?/strong>
- 黑白雙方,雙方行為是一模一樣的
- 棋盤系統(tǒng),負(fù)責(zé)繪制畫(huà)面
- 規(guī)則系統(tǒng),判斷犯規(guī)、輸贏
傳統(tǒng)的面向過(guò)程編程是思考問(wèn)題的解決步驟,這種思維方式適用于問(wèn)題規(guī)模較小時(shí)??墒钱?dāng)問(wèn)題規(guī)模大,要求程序有更好的可擴(kuò)展性,能更快速地查錯(cuò)時(shí)面向?qū)ο笤O(shè)計(jì)思想就能體現(xiàn)出其優(yōu)勢(shì)。面向?qū)ο蟾咏祟惖刈匀凰季S方式,將現(xiàn)實(shí)世界中的事物抽象為對(duì)象和對(duì)象的方法。
面向?qū)ο蟮拈_(kāi)發(fā)過(guò)程其實(shí)就是不斷創(chuàng)建對(duì)象、使用對(duì)象、指揮對(duì)象做事情的過(guò)程。
類與對(duì)象關(guān)系。
對(duì)象表示一個(gè)可以明確標(biāo)識(shí)的實(shí)體。例如:一個(gè)人、一本書(shū)、一個(gè)學(xué)校或一臺(tái)電腦等等。每個(gè)對(duì)象都有自己獨(dú)特的標(biāo)識(shí)、狀態(tài)和行為。
對(duì)象的狀態(tài)(特征或?qū)傩?,即?shí)例變量),由該對(duì)象的數(shù)據(jù)域來(lái)表示。 例如:一個(gè)人可以具有名字、年齡、身高、體重、家庭地址等等屬性,這些就是“人這個(gè)對(duì)象的數(shù)據(jù)域”。
對(duì)象的行為(對(duì)象執(zhí)行的動(dòng)作,即功能),由方法來(lái)定義。例如:定義getName()來(lái)獲取姓名, getHeight()獲取身高,setAddress(String addr)修改地址。
構(gòu)造方法
構(gòu)造方法是在創(chuàng)建對(duì)象時(shí)就會(huì)被調(diào)用。每個(gè)類都有構(gòu)造方法,如果沒(méi)有顯示地為類定義構(gòu)造方法,則編譯器會(huì)為類自動(dòng)創(chuàng)建一個(gè)默認(rèn)無(wú)參構(gòu)造方法。構(gòu)造方法必須和類名完全一致,而且沒(méi)有返回類型。
舉個(gè)例子:
public class Person{ public String name; public int age; public Person(){//無(wú)參構(gòu)造方法。 } public Person(String n,int a){//有參構(gòu)造方法 name=n; age=a; } } public class PersonTest{ public static void main(String[] args){ Penson p = new Penson("張三",19); //有參數(shù)調(diào)用對(duì)應(yīng)有參構(gòu)造方法。 System.out.println("姓名:"+p.name+" 年齡:"+p.age); } }
運(yùn)行結(jié)果:
姓名:張三 年齡:19
static關(guān)鍵字
用于修飾類的成員,用static修飾過(guò)的變量、方法分別稱為類成員變量,類成員方法。類成員變量、類成員方法屬于類本身,不需要?jiǎng)?chuàng)建對(duì)象就可以直接訪問(wèn)。
訪問(wèn)方式:
類名.成員變量/成員方法
總結(jié):
- 隨著類加載而加載
- 優(yōu)先于對(duì)象存在,意味著在對(duì)象創(chuàng)建之前就可以調(diào)用,因此java程序的主方法必須用static修飾
注意:
- 靜態(tài)方法只能訪問(wèn)靜態(tài)成員
- 靜態(tài)方法中不能使用this、super關(guān)鍵字
- 方法體內(nèi)的局部變量不能使用static修飾
this關(guān)鍵字
Java中this關(guān)鍵字用于引用對(duì)象的成員變量和方法,可以方便地在類地內(nèi)部對(duì)對(duì)象地成員變量和方法進(jìn)行操作。
public class Person{ private String name; private int age; public void SetName(String name){ this.name=name; //將參數(shù)傳給當(dāng)前對(duì)象的name。 } }
this()
this()表示當(dāng)前類的構(gòu)造方法,只能在構(gòu)造方法中使用該寫(xiě)法,并且是寫(xiě)在構(gòu)造方法內(nèi)的第一行。
以上所述是小編給大家介紹的Java基礎(chǔ)篇--面向?qū)ο?(構(gòu)造方法,static、this關(guān)鍵字)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Spring IoC容器常見(jiàn)獲取Bean的方式匯總示例解析
這篇文章主要為大家介紹了Spring IoC容器常見(jiàn)獲取Bean的方式匯總示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Java實(shí)現(xiàn)布隆過(guò)濾器的幾種方式總結(jié)
這篇文章給大家總結(jié)了幾種Java實(shí)現(xiàn)布隆過(guò)濾器的方式,手動(dòng)硬編碼實(shí)現(xiàn),引入Guava實(shí)現(xiàn),引入hutool實(shí)現(xiàn),通過(guò)redis實(shí)現(xiàn)等幾種方式,文中有詳細(xì)的代碼和圖解,需要的朋友可以參考下2023-07-07Spring Data JPA實(shí)現(xiàn)動(dòng)態(tài)查詢的兩種方法
本篇文章主要介紹了Spring Data JPA實(shí)現(xiàn)動(dòng)態(tài)查詢的兩種方法,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-04-04springboot動(dòng)態(tài)注入配置與docker設(shè)置環(huán)境變量的方法
這篇文章主要介紹了springboot動(dòng)態(tài)注入配置與docker設(shè)置環(huán)境變量的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Java處理字節(jié)類型數(shù)據(jù)的實(shí)現(xiàn)步驟
字節(jié)(Byte)是計(jì)算機(jī)信息技術(shù)用于計(jì)量存儲(chǔ)容量的一種基本單位,通常簡(jiǎn)寫(xiě)為B,在ASCII編碼中1Byte可以表示一個(gè)標(biāo)準(zhǔn)的英文字符,包括大寫(xiě)字母、小寫(xiě)字母、數(shù)字、標(biāo)點(diǎn)符號(hào)和控制字符等,本文給大家介紹了Java如何優(yōu)雅的處理字節(jié)類型數(shù)據(jù),需要的朋友可以參考下2024-07-07Spring Security內(nèi)存中認(rèn)證的實(shí)現(xiàn)
本文主要介紹了Spring Security內(nèi)存中認(rèn)證的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11Java maven三種倉(cāng)庫(kù),本地倉(cāng)庫(kù),私服,中央倉(cāng)庫(kù)的配置
今天給大家簡(jiǎn)單介紹Maven三種倉(cāng)庫(kù)的配置,文中有非常詳細(xì)的解釋,對(duì)Java初學(xué)者很有幫助喲,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助2021-09-09