詳解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ī)模較小時??墒钱?dāng)問題規(guī)模大,要求程序有更好的可擴展性,能更快速地查錯時面向?qū)ο笤O(shè)計思想就能體現(xiàn)出其優(yōu)勢。面向?qū)ο蟾咏祟惖刈匀凰季S方式,將現(xiàn)實世界中的事物抽象為對象和對象的方法。
面向?qū)ο蟮拈_發(fā)過程其實就是不斷創(chuàng)建對象、使用對象、指揮對象做事情的過程。
類與對象關(guān)系。
對象表示一個可以明確標(biāo)識的實體。例如:一個人、一本書、一個學(xué)?;蛞慌_電腦等等。每個對象都有自己獨特的標(biāo)識、狀態(tài)和行為。
對象的狀態(tài)(特征或?qū)傩?,即實例變量),由該對象的?shù)據(jù)域來表示。 例如:一個人可以具有名字、年齡、身高、體重、家庭地址等等屬性,這些就是“人這個對象的數(shù)據(jù)域”。
對象的行為(對象執(zhí)行的動作,即功能),由方法來定義。例如:定義getName()來獲取姓名, getHeight()獲取身高,setAddress(String addr)修改地址。
構(gòu)造方法
構(gòu)造方法是在創(chuàng)建對象時就會被調(diào)用。每個類都有構(gòu)造方法,如果沒有顯示地為類定義構(gòu)造方法,則編譯器會為類自動創(chuàng)建一個默認(rèn)無參構(gòu)造方法。構(gòu)造方法必須和類名完全一致,而且沒有返回類型。
舉個例子:
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);
}
}
運行結(jié)果:
姓名:張三 年齡:19
static關(guān)鍵字
用于修飾類的成員,用static修飾過的變量、方法分別稱為類成員變量,類成員方法。類成員變量、類成員方法屬于類本身,不需要創(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)鍵字)詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringCloud Stream消息驅(qū)動實例詳解
這篇文章主要介紹了SpringCloud Stream消息驅(qū)動的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
javaSE,javaEE,javaME的區(qū)別小結(jié)
本篇文章小編就為大家簡單說說JavaSE、JavaEE、JavaME三者之間的區(qū)別,需要的朋友可以過來參考下,感興趣的小伙伴們可以參考一下2023-08-08
sharding-jdbc5.0.0實現(xiàn)分表實踐
本文主要介紹了sharding-jdbc5.0.0分表實踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
Java設(shè)計模塊系列之書店管理系統(tǒng)單機版(三)
這篇文章主要為大家詳細(xì)介紹了Java單機版的書店管理系統(tǒng)設(shè)計模塊和思想第三章,感興趣的小伙伴們可以參考一下2016-08-08
詳細(xì)解讀AbstractStringBuilder類源碼
這篇文章主要介紹了詳細(xì)解讀AbstractStringBuilder類源碼,具有一定參考價值,需要的朋友可以了解下。2017-12-12
java的main方法中調(diào)用spring的service方式
這篇文章主要介紹了在java的main方法中調(diào)用spring的service方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12

