Java基礎(chǔ)詳解之面向?qū)ο蟮哪切┦聝?/h1>
更新時(shí)間:2021年04月21日 08:46:02 作者:小葉要暴富
這篇文章主要介紹了Java基礎(chǔ)之面向?qū)ο竽切┦聝?文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
一、面向?qū)ο蟮睦斫?/h2>
首先,要清楚一點(diǎn),與面向過程不同,面向?qū)ο笥兄约邯?dú)特的優(yōu)勢(shì)。舉個(gè)通俗的例子,設(shè)想我們要得到一把椅子,面向過程的話我們可能需要通過買木材,設(shè)計(jì)圖紙,最后切割而成。但對(duì)于面向?qū)ο髞碚f,我們只需找到一個(gè)家具店,買一把椅子即可。
面向?qū)ο笠彩荍ava語(yǔ)言的特點(diǎn)之一,其實(shí)從idea中不難看出,這種面向?qū)ο蟮恼Z(yǔ)言所具有:
1.易維護(hù)
2.易復(fù)用
3.易擴(kuò)展
二、三大特性
2.1 繼承(extends):
顧名思義,是獲取原有的基礎(chǔ),在此基礎(chǔ)上進(jìn)行操作的一個(gè)過程。使用已存在的類的定義作為基礎(chǔ),可以增加新的屬性的一個(gè)過程。(在java中,繼承是用于子類與父類之間)
例如:
1.先定義一個(gè)父類(動(dòng)物)

2.定義一個(gè)子類(貓)

其中,貓作為動(dòng)物,可以繼承動(dòng)物中的吃食物的特性,此外,貓具有喜歡抓老鼠的特性。
3.進(jìn)行測(cè)試


從上述這個(gè)簡(jiǎn)單的例子可以看出,繼承是通過extends關(guān)鍵字來實(shí)現(xiàn)的,貓的類中沒有定義吃食物的屬性,但是繼承后可以使用吃食物的屬性(可以提高代碼的復(fù)用性)。
關(guān)于繼承:
1.子類不能選擇性的繼承父類,只要選擇繼承,就要繼承全部(除了父類中private修飾的屬性和方法)
2.子類是對(duì)父類的一個(gè)擴(kuò)展,可以有屬于自己的屬性和方法
3.java是單繼承,但可以多重繼承(也就是有一個(gè)子類只能繼承一個(gè)父類,但是一個(gè)父類可以有多個(gè)子類。通俗來說,就是你的爸爸可以有多個(gè)孩子,但這些孩子只有一個(gè)爸爸。)
2.2 封裝(private):
封裝的定義:
將一些細(xì)節(jié)信息私有化,并且提供給外界可以對(duì)其訪問其屬性的方法(如果不提供,那么這個(gè)封裝沒有意義)
特點(diǎn):
被private修飾的類的權(quán)限最低,也最為安全,其安全性與其易維護(hù)性顯著.
例如:
public class Fengzhuang {
private int chang;//成員屬性
private int kuan;
private int di;
private int gao;
public Fengzhuang() {//無(wú)參構(gòu)造
}
public Fengzhuang(int chang, int kuan, int di, int gao) {//帶參構(gòu)造
this.chang = chang;
this.kuan = kuan;
this.di = di;
this.gao = gao;
}
public int getChang() {
return chang;
}
public void setChang(int chang) {
this.chang = chang;
}
public int getKuan() {
return kuan;
}
public void setKuan(int kuan) {
this.kuan = kuan;
}
public int getDi() {
return di;
}
public void setDi(int di) {
this.di = di;
}
public int getGao() {
return gao;
}
public void setGao(int gao) {
this.gao = gao;
}
public void mj(int chang,int kuan,int di,int gao){
int sum=chang*kuan;
int sum2=di*gao/2;
System.out.println("長(zhǎng)方形的面積為"+sum+"三角形的面積為"+sum2);
}
}
這個(gè)例子中,將長(zhǎng)方形和三角形的面積封裝起來,作為一個(gè)方法來使用
進(jìn)行測(cè)試
public class Fengzhuangtest {
public static void main(String[] args) {
Fengzhuang FZ = new Fengzhuang();
FZ.mj(5,4,6,7);
;
}
}

關(guān)于封裝:
方法和private修飾的類都是封裝的形式,當(dāng)大家遇到這種只需變換數(shù)字(長(zhǎng)和寬,底和高)的情況,可以封裝為方法,方便大家使用.
2.3 多態(tài):
多態(tài)定義:
允許不同對(duì)象對(duì)同一消息做出不同的響應(yīng),
實(shí)現(xiàn)多態(tài)的條件:
要想實(shí)現(xiàn)多態(tài),必須滿足繼承,重寫,父類引用指向子類對(duì)象三大必要條件(又分為向上轉(zhuǎn)型,向下轉(zhuǎn)型)
向上轉(zhuǎn)型:
父類類型變量名= new 子類類型
這種情況一般適用于父類完全滿足需求,我們不需要再去添加新的屬性
向下轉(zhuǎn)型:
子類類型 變量名=子類類型 父類類型的變量
這種情況一般適用于父類滿足不了需求,需要用到子類所特有的方法時(shí)使用
例如:
1.先定義一個(gè)父類(動(dòng)物都有吃的功能)

2.定義兩個(gè)子類(貓,狗)


在這個(gè)例子中,同樣都是吃東西,對(duì)貓這個(gè)對(duì)象來說,是吃魚,對(duì)狗來說,是吃骨頭,是多態(tài)的體現(xiàn)
3.進(jìn)行測(cè)試


三、自動(dòng)裝箱與自動(dòng)拆箱
3.1 自動(dòng)裝箱
自動(dòng)將基本數(shù)據(jù)類型轉(zhuǎn)化為包裝類類型
3.2 自動(dòng)拆箱
自動(dòng)將包裝類類型轉(zhuǎn)化為基本數(shù)據(jù)類型
四、小結(jié)
提到面向?qū)ο?大家應(yīng)該立馬想到它的三大特性,了解其基礎(chǔ)概念.多敲代碼,多做題,在案例中體會(huì)三大特性
到此這篇關(guān)于Java基礎(chǔ)之面向?qū)ο蟮哪切┦聝旱奈恼戮徒榻B到這了,更多相關(guān)java面向?qū)ο髢?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
-
Java實(shí)戰(zhàn)項(xiàng)目之斗地主和斗牛游戲的實(shí)現(xiàn)
讀萬(wàn)卷書不如行萬(wàn)里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)斗地主和一個(gè)斗牛游戲,大家可以在過程中查缺補(bǔ)漏,提升水平 2021-11-11
-
解決Maven項(xiàng)目本地公共common包緩存問題
這篇文章主要介紹了解決Maven項(xiàng)目本地公共common包緩存問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教 2021-09-09
-
JAVA實(shí)現(xiàn)將磁盤中所有空文件夾進(jìn)行刪除的代碼
這篇文章主要介紹了JAVA實(shí)現(xiàn)將磁盤中所有空文件夾進(jìn)行刪除的代碼,需要的朋友可以參考下 2017-06-06
-
mybatis如何對(duì)大量數(shù)據(jù)的游標(biāo)查詢
這篇文章主要介紹了mybatis如何對(duì)大量數(shù)據(jù)的游標(biāo)查詢問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教 2024-01-01
-
關(guān)于idea中Java Web項(xiàng)目的訪問路徑問題
這篇文章主要介紹了idea中Java Web項(xiàng)目的訪問路徑問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下 2021-03-03
-
Idea設(shè)置spring boot應(yīng)用配置參數(shù)的兩種方式
本文通過兩個(gè)方式介紹Idea設(shè)置spring boot應(yīng)用配置參數(shù),一種是配置VM options的參數(shù)時(shí)要以:-DparamName的格式設(shè)置參數(shù),第二種可以參考下本文詳細(xì)設(shè)置,感興趣的朋友跟隨小編一起看看吧 2023-11-11
-
mybatis錯(cuò)誤之in查詢?<foreach>循環(huán)問題
這篇文章主要介紹了mybatis錯(cuò)誤之in查詢?<foreach>循環(huán)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教 2022-01-01
最新評(píng)論
一、面向?qū)ο蟮睦斫?/h2>
首先,要清楚一點(diǎn),與面向過程不同,面向?qū)ο笥兄约邯?dú)特的優(yōu)勢(shì)。舉個(gè)通俗的例子,設(shè)想我們要得到一把椅子,面向過程的話我們可能需要通過買木材,設(shè)計(jì)圖紙,最后切割而成。但對(duì)于面向?qū)ο髞碚f,我們只需找到一個(gè)家具店,買一把椅子即可。
首先,要清楚一點(diǎn),與面向過程不同,面向?qū)ο笥兄约邯?dú)特的優(yōu)勢(shì)。舉個(gè)通俗的例子,設(shè)想我們要得到一把椅子,面向過程的話我們可能需要通過買木材,設(shè)計(jì)圖紙,最后切割而成。但對(duì)于面向?qū)ο髞碚f,我們只需找到一個(gè)家具店,買一把椅子即可。
面向?qū)ο笠彩荍ava語(yǔ)言的特點(diǎn)之一,其實(shí)從idea中不難看出,這種面向?qū)ο蟮恼Z(yǔ)言所具有:
1.易維護(hù)
2.易復(fù)用
3.易擴(kuò)展
二、三大特性
2.1 繼承(extends):
顧名思義,是獲取原有的基礎(chǔ),在此基礎(chǔ)上進(jìn)行操作的一個(gè)過程。使用已存在的類的定義作為基礎(chǔ),可以增加新的屬性的一個(gè)過程。(在java中,繼承是用于子類與父類之間)
例如:
1.先定義一個(gè)父類(動(dòng)物)
2.定義一個(gè)子類(貓)
其中,貓作為動(dòng)物,可以繼承動(dòng)物中的吃食物的特性,此外,貓具有喜歡抓老鼠的特性。
3.進(jìn)行測(cè)試
從上述這個(gè)簡(jiǎn)單的例子可以看出,繼承是通過extends關(guān)鍵字來實(shí)現(xiàn)的,貓的類中沒有定義吃食物的屬性,但是繼承后可以使用吃食物的屬性(可以提高代碼的復(fù)用性)。
關(guān)于繼承:
1.子類不能選擇性的繼承父類,只要選擇繼承,就要繼承全部(除了父類中private修飾的屬性和方法)
2.子類是對(duì)父類的一個(gè)擴(kuò)展,可以有屬于自己的屬性和方法
3.java是單繼承,但可以多重繼承(也就是有一個(gè)子類只能繼承一個(gè)父類,但是一個(gè)父類可以有多個(gè)子類。通俗來說,就是你的爸爸可以有多個(gè)孩子,但這些孩子只有一個(gè)爸爸。)
2.2 封裝(private):
封裝的定義:
將一些細(xì)節(jié)信息私有化,并且提供給外界可以對(duì)其訪問其屬性的方法(如果不提供,那么這個(gè)封裝沒有意義)
特點(diǎn):
被private修飾的類的權(quán)限最低,也最為安全,其安全性與其易維護(hù)性顯著.
例如:
public class Fengzhuang { private int chang;//成員屬性 private int kuan; private int di; private int gao; public Fengzhuang() {//無(wú)參構(gòu)造 } public Fengzhuang(int chang, int kuan, int di, int gao) {//帶參構(gòu)造 this.chang = chang; this.kuan = kuan; this.di = di; this.gao = gao; } public int getChang() { return chang; } public void setChang(int chang) { this.chang = chang; } public int getKuan() { return kuan; } public void setKuan(int kuan) { this.kuan = kuan; } public int getDi() { return di; } public void setDi(int di) { this.di = di; } public int getGao() { return gao; } public void setGao(int gao) { this.gao = gao; } public void mj(int chang,int kuan,int di,int gao){ int sum=chang*kuan; int sum2=di*gao/2; System.out.println("長(zhǎng)方形的面積為"+sum+"三角形的面積為"+sum2); } }
這個(gè)例子中,將長(zhǎng)方形和三角形的面積封裝起來,作為一個(gè)方法來使用
進(jìn)行測(cè)試
public class Fengzhuangtest { public static void main(String[] args) { Fengzhuang FZ = new Fengzhuang(); FZ.mj(5,4,6,7); ; } }
關(guān)于封裝:
方法和private修飾的類都是封裝的形式,當(dāng)大家遇到這種只需變換數(shù)字(長(zhǎng)和寬,底和高)的情況,可以封裝為方法,方便大家使用.
2.3 多態(tài):
多態(tài)定義:
允許不同對(duì)象對(duì)同一消息做出不同的響應(yīng),
實(shí)現(xiàn)多態(tài)的條件:
要想實(shí)現(xiàn)多態(tài),必須滿足繼承,重寫,父類引用指向子類對(duì)象三大必要條件(又分為向上轉(zhuǎn)型,向下轉(zhuǎn)型)
向上轉(zhuǎn)型:
父類類型變量名= new 子類類型
這種情況一般適用于父類完全滿足需求,我們不需要再去添加新的屬性
向下轉(zhuǎn)型:
子類類型 變量名=子類類型 父類類型的變量
這種情況一般適用于父類滿足不了需求,需要用到子類所特有的方法時(shí)使用
例如:
1.先定義一個(gè)父類(動(dòng)物都有吃的功能)
2.定義兩個(gè)子類(貓,狗)
在這個(gè)例子中,同樣都是吃東西,對(duì)貓這個(gè)對(duì)象來說,是吃魚,對(duì)狗來說,是吃骨頭,是多態(tài)的體現(xiàn)
3.進(jìn)行測(cè)試
三、自動(dòng)裝箱與自動(dòng)拆箱
3.1 自動(dòng)裝箱
自動(dòng)將基本數(shù)據(jù)類型轉(zhuǎn)化為包裝類類型
3.2 自動(dòng)拆箱
自動(dòng)將包裝類類型轉(zhuǎn)化為基本數(shù)據(jù)類型
四、小結(jié)
提到面向?qū)ο?大家應(yīng)該立馬想到它的三大特性,了解其基礎(chǔ)概念.多敲代碼,多做題,在案例中體會(huì)三大特性
到此這篇關(guān)于Java基礎(chǔ)之面向?qū)ο蟮哪切┦聝旱奈恼戮徒榻B到這了,更多相關(guān)java面向?qū)ο髢?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)戰(zhàn)項(xiàng)目之斗地主和斗牛游戲的實(shí)現(xiàn)
讀萬(wàn)卷書不如行萬(wàn)里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)斗地主和一個(gè)斗牛游戲,大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11解決Maven項(xiàng)目本地公共common包緩存問題
這篇文章主要介紹了解決Maven項(xiàng)目本地公共common包緩存問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09JAVA實(shí)現(xiàn)將磁盤中所有空文件夾進(jìn)行刪除的代碼
這篇文章主要介紹了JAVA實(shí)現(xiàn)將磁盤中所有空文件夾進(jìn)行刪除的代碼,需要的朋友可以參考下2017-06-06mybatis如何對(duì)大量數(shù)據(jù)的游標(biāo)查詢
這篇文章主要介紹了mybatis如何對(duì)大量數(shù)據(jù)的游標(biāo)查詢問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01關(guān)于idea中Java Web項(xiàng)目的訪問路徑問題
這篇文章主要介紹了idea中Java Web項(xiàng)目的訪問路徑問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Idea設(shè)置spring boot應(yīng)用配置參數(shù)的兩種方式
本文通過兩個(gè)方式介紹Idea設(shè)置spring boot應(yīng)用配置參數(shù),一種是配置VM options的參數(shù)時(shí)要以:-DparamName的格式設(shè)置參數(shù),第二種可以參考下本文詳細(xì)設(shè)置,感興趣的朋友跟隨小編一起看看吧2023-11-11mybatis錯(cuò)誤之in查詢?<foreach>循環(huán)問題
這篇文章主要介紹了mybatis錯(cuò)誤之in查詢?<foreach>循環(huán)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01