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