詳解Java基礎(chǔ)篇--面向?qū)ο?(構(gòu)造方法,static、this關(guān)鍵字)
面向?qū)ο?,面向過(guò)程的區(qū)別。拿下五子棋來(lái)說(shuō):
面向過(guò)程分析:
- 開(kāi)始游戲
- 黑棋先走
- 繪制畫(huà)面
- 判斷輸贏
- 輪到白棋
- 繪制畫(huà)面
- 判斷輸贏
- 返回步驟2
- 輸出結(jié)果
面向?qū)ο蠓治觯?/strong>
- 黑白雙方,雙方行為是一模一樣的
- 棋盤(pán)系統(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ū)ο蟾咏祟?lèi)地自然思維方式,將現(xiàn)實(shí)世界中的事物抽象為對(duì)象和對(duì)象的方法。
面向?qū)ο蟮拈_(kāi)發(fā)過(guò)程其實(shí)就是不斷創(chuàng)建對(duì)象、使用對(duì)象、指揮對(duì)象做事情的過(guò)程。
類(lèi)與對(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è)類(lèi)都有構(gòu)造方法,如果沒(méi)有顯示地為類(lèi)定義構(gòu)造方法,則編譯器會(huì)為類(lèi)自動(dòng)創(chuàng)建一個(gè)默認(rèn)無(wú)參構(gòu)造方法。構(gòu)造方法必須和類(lèi)名完全一致,而且沒(méi)有返回類(lè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)鍵字
用于修飾類(lèi)的成員,用static修飾過(guò)的變量、方法分別稱(chēng)為類(lèi)成員變量,類(lèi)成員方法。類(lèi)成員變量、類(lèi)成員方法屬于類(lèi)本身,不需要?jiǎng)?chuàng)建對(duì)象就可以直接訪問(wèn)。
訪問(wèn)方式:
類(lèi)名.成員變量/成員方法
總結(jié):
- 隨著類(lèi)加載而加載
- 優(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ì)象的成員變量和方法,可以方便地在類(lèi)地內(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)前類(lèi)的構(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)文章
SpringCloud Stream消息驅(qū)動(dòng)實(shí)例詳解
這篇文章主要介紹了SpringCloud Stream消息驅(qū)動(dòng)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
javaSE,javaEE,javaME的區(qū)別小結(jié)
本篇文章小編就為大家簡(jiǎn)單說(shuō)說(shuō)JavaSE、JavaEE、JavaME三者之間的區(qū)別,需要的朋友可以過(guò)來(lái)參考下,感興趣的小伙伴們可以參考一下2023-08-08
sharding-jdbc5.0.0實(shí)現(xiàn)分表實(shí)踐
本文主要介紹了sharding-jdbc5.0.0分表實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Java設(shè)計(jì)模塊系列之書(shū)店管理系統(tǒng)單機(jī)版(三)
這篇文章主要為大家詳細(xì)介紹了Java單機(jī)版的書(shū)店管理系統(tǒng)設(shè)計(jì)模塊和思想第三章,感興趣的小伙伴們可以參考一下2016-08-08
詳細(xì)解讀AbstractStringBuilder類(lèi)源碼
這篇文章主要介紹了詳細(xì)解讀AbstractStringBuilder類(lèi)源碼,具有一定參考價(jià)值,需要的朋友可以了解下。2017-12-12
通過(guò)實(shí)例解析傳統(tǒng)jar包引用方式
這篇文章主要介紹了通過(guò)實(shí)例解析傳統(tǒng)jar包引用方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
java的main方法中調(diào)用spring的service方式
這篇文章主要介紹了在java的main方法中調(diào)用spring的service方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
java中1+1d/5和1+1/5的區(qū)別說(shuō)明
這篇文章主要介紹了java中1+1d/5和1+1/5的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10

