1. 程式人生 > 實用技巧 >Vue3.0網頁版聊天|Vue3.x+ElementPlus仿微信/QQ介面|vue3聊天例項

Vue3.0網頁版聊天|Vue3.x+ElementPlus仿微信/QQ介面|vue3聊天例項

面向物件(OOP)

初識面向物件

對於描述複雜的事物,為了從巨集觀上把握、從整體上合理分析,我們需要使用面向物件的思路來分析整個系統。但是,具體到微觀操作,仍然需要面向物件的思路去處理。

什麼是面向物件

  • 本質就是: 以類的方式組織程式碼,以物件的組織(封裝)資料。

  • 抽象

  • 三大特徵

封裝

繼承

多型

方法回顧和加深

回顧方法的定義

package oop;

public class Demo01 {
//main方法
public static void main(String[] args) {

}
/*
修飾符 返回值型別 方法名(···){
// 方法體
return 返回值;

}
*/
public String sayHello(){
return "Hello";
}
}

回顧方法的呼叫

  • 靜態方法 static

和類一起載入的

  • 非靜態方法

  • 例項化之後才存在

例項化

Student student = new Student();
// 物件型別 物件名 = 物件值;

物件的建立分析

類與物件的關係

  • 類是一種抽象的資料型別,它是對某一類事物整體描述/定義,但是並不能代表一個具體的事物

  • 物件是抽象概念的具體例項

建立與初始化物件

  • 使用new 關鍵字建立物件

構造器(構造方法)

在進行建立物件的時候必須要呼叫的,並且構造器有以下兩個特點

  1. 必須和類的名字相同

  2. 必須沒有返回型別,也不能寫void

使用new的時候必須有構造器

有參構造

  • 一但定義了有參構造,如果使用無參構造必須顯示定義

Alt + Insert 生成構造器

記憶體分析

小結

  1. 類與物件

類是一個模板:抽象;物件是一個具體的例項

  1. 方法

定義,呼叫

  1. 物件的引用

引用型別

物件是通過引用來操作的

  1. 屬性

欄位Field 成員變數

預設初始化

  1. 物件的建立和使用

必須使用new關鍵字建立物件,構造器

Preson person = new Person();
person.name;//物件的使用
person.sleep;//物件的方法

面向物件的三大特徵

封裝

  • 該露的露,該藏得藏

高內聚(類的內部資料操作細節自己完成),低耦合(僅暴漏少量的方法給外部使用)

  • 屬性私有

    paivate 屬性私有

  • get /set

    提供一些public 的 get set方法

    Alt + insert

繼承

  • 繼承的本質是對某一批類的抽象,從而實現對現實世界更好的建模。

  • extends 的意思是“擴充套件”。子類是父類的擴充套件

  • JAVA中類只有單繼承,沒有多繼承

    • 繼承是類和類之間的一種關係。除此之外,類和類之間的關係還有依賴、組合、聚合等。

    • 繼承關係的兩個類,一個為子類,一個為父類。子類繼承父類,使用關鍵字extends來表示

    • 子類和父類之間,從意義上講應該具有“is a”的關係

  • Ctrl + H

  • 在Java中所有的類就預設直接或間接繼承Object類

super

  1. super呼叫父類的構造方法,必須在構造方法的第一個

  2. super必須只能出現在子類的方法或者構造方法中

  3. super 和 this 不能同時呼叫構造方法

Vs this

  • 代表物件不同

    • this : 本身呼叫者這個物件

    • super : 代表父類的應用

  • 前提

    • this : 沒有繼承也可以使用

    • super :只能在繼承條件下才可以使用

  • 構造方法

    • this(); 本類的構造

    • super();父類的構造

方法重寫(需要有繼承關係,子類重寫父類的方法)

  1. 方法名必須相同

  2. 引數列表必須相同

  3. 修飾符範圍可以擴大,不能縮小 public>Protected>Default>private

  4. 丟擲的異常範圍可以被縮小,但不能擴大

父類的功能,子類不一定需要,或者不一定滿足

多型

  1. 多型是方法的多型,屬性沒有多型

  2. 父類和子類有聯絡,型別轉換異常 ClassCastException

  3. 存在條件 :繼承關係,子類需要重寫,父類引用指向子類物件

static final private修飾的不能被重寫

instanceof 判斷兩個類之間是否有父子關係

Object object = new Person();
Object instanceof Person
// Object 與 Person有父子關係可以編譯執行
// Person 與 Person 有父子關係返回sure

強制轉換

(子類)名字;//強制轉換為子類型別
  1. 父類引用指向子類的物件

  2. 把子類轉換為父類,向上轉型

  3. 如果想把父類轉化為子類 ; 向下轉型。強制轉換

  4. 方便方法的呼叫,減少重複的程式碼

static

https://www.bilibili.com/video/BV12J41137hu?p=73

抽象類和介面

抽象類

  • abstract 修飾

  • 抽象類的所有方法,自稱了它的子類,都必須實現他的方法

  • 不能new 抽象類,只能子類去實現

  • 抽象方法必須在抽象類中,抽象類中可以寫普通方法

介面

只有規範,自己無法寫方法

介面的本質是契約

可以利用介面實現多繼承

定義的方法都是public static類
定義的常量都是public static final

作用

  1. 約束繼承的子類

  2. 定義一些方法,讓不同的人實現

  3. 介面不能直接被例項化

  4. implements可以實現多個繼承

  5. 必須重寫介面中的方法

內部類及OOP實戰

內部類

。。。