今日分享開始啦,請大家多多指教
~
一.面向物件的概述
面向物件是一種符合人類思維習慣的程式設計思想。與面向過程不同,面向物件有著自己獨特的優勢。舉個通俗的例子,假如我們要得到一張木床,面向過程的話我們可能需要透過買木材,設計圖紙,最後切割而成。但對於面向物件來說,我們只需找到一個傢俱店,買一張床即可。
面向物件也是
Java語言的特點之一,這種面向物件的語言所具有:
1、封裝性
2、繼承性
3、多型性
二.三大特性
1.封裝(private):
封裝是將一些細節資訊私有化
,並且提供給外界可以對其訪問其屬性的方法(如果不提供,那麼這個封裝沒有意義)
特點
:被private修飾的類的許可權最低,也最為安全,其安全性與其易維護性顯著。
例如:
public class Fengzhuang {
private int chang;//成員屬性
private int kuan;
private int di;
private int gao;
public Fengzhuang() {//無參構造
}
public Fengzhuang(int chang, int kuan, int di, int gao) {//帶參構造
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(“長方形的面積為”+sum+“三角形的面積為”+sum2);
}
}
這個例子中
,將長方形和三角形的面積封裝起來,作為一個方法來使用
進行測試
public class Fengzhuangtest {
public static void main(String[] args) {
Fengzhuang FZ = new Fengzhuang();
FZ。mj(5,4,6,7);
;
}
}
關於封裝:
方法和
private修飾的類都是封裝的形式,當大家遇到這種只需變換數字(長和寬,底和高)的情況,可以封裝為方法,方便大家使用。
2.繼承(extends):
繼承性主要描述的是類與類之間的關係,透過繼承,使用已存在的類的定義作為基礎,對原有類的功能進行擴充套件。(在
java中,繼承是用於子類與父類之間)
例如:
1。先定義一個父類
2。定義一個子類
其中,貓作為動物,可以繼承動物中的吃食物的特性,另外貓具有喜歡抓老鼠的特性。
3。進行測試
從上述這個簡單的例子可以看出,繼承是透過
extends關鍵字來實現的,貓的類中沒有定義吃食物的屬性,但是繼承後可以使用吃食物的屬性(可以提高程式碼的複用性)。
關於繼承:
1。子類不能選擇性地繼承父類,只要選擇繼承,就要繼承全部(除了父類中private修飾的屬性和方法)
2。子類是對父類的一個擴充套件,可以有屬於自己的屬性和方法
3。java是單繼承,但可以多重繼承(也就是有一個子類只能繼承一個父類,但是一個父類可以有多個子類。通俗來說,就是你的爸爸可以有多個孩子,但這些孩子只有一個爸爸。)
3.多型:
多型是允許不同物件對同一訊息做出不同的響應,它指在一個類中定義的屬性和方法被其他類繼承後,它們可以具有不同的資料型別或表現出不同的行為,這使得同一個屬性和方法在不同的類中具有不同的語義。
實現多型的條件
:
要想實現多型
,必須滿足繼承,重寫,父類引用指向子類物件三大必要條件(又分為向上轉型,向下轉型)
向上轉型
:
父類型別變數名
= new 子類型別
這種情況一般適用於父類完全滿足需求
,我們不需要再去新增新的屬性
向下轉型
:
子類型別
變數名
=子類型別 父類型別的變數
這種情況一般適用於父類滿足不了需求
,需要用到子類所特有的方法時使用
例如:
1。先定義一個父類(動物都有吃的功能)
2。定義兩個子類(貓,狗)
在這個例子中,同樣都是吃東西,對貓這個物件來說是吃魚;對狗來說是吃骨頭,這就是多型的體現。
3。進行測試
自動裝箱:自動將基本資料型別轉化為包裝類型別
自動拆箱
:自動將包裝類型別轉化為基本資料型別
小結
提到面向物件,自然會想到面向過程,面向過程就是分析解決問題所需要的步驟,然後用函式把這些步驟一一實現,使用的時候一個一個依次呼叫就可以了。首先要關注它的三大特性
,瞭解其基礎概念。
今日份分享已結束,請大家多多包涵和指點,感謝大家點贊支援!