物件導向內容詳解
無論物件導向或物件導向過程, 這兩個都是解決問題的思路而已, 只是角度不同.
# 導向過程:
強調解決問題的每一個步驟都親力親為,每一個細節都自己手動實現.
面向對象:
#使用特定功能對象去解決特定的問題, 每一個細節不需要關注,只需要創建對應的物件即可.
物件導向是基於過程導向的
類別和物件及他們的關係
# 類別: 具有相同特徵和行為(功能)的事物的統稱, 是一個抽象概念
物件: 這類事物中某個確定的個體
類別和物件的關係
一個類別可以建立多個物件, 類別是物件的抽象, 物件是類別的實例.
描述一個事物----> 類別
特徵----> 成員屬性(成員變數)
行為(功能)---> 成員方法
類別的建立格式:
修飾符 class 類位元{
資料型別 成員變項名稱1;
資料型別 成員變項名稱2;
資料型別 成員變項名稱3;
...
# 成員法1 ;
成員方法2;
成員方法3;
...
}
修飾符: public
類別名稱: 識別碼見名知意
#成員變數列表: 事物的特徵,只寫當前場景關注的特徵,沒必要把事物的所有特徵全都寫上. 寫法類似於定義變數
成員方法: 事物的行為(功能) 只寫當前場景關注的行為(特徵) 寫法上類似於先前的定義方法, 差別在於此時寫的話要去掉static
當一個類別第一次使用的時候要載入到方法區, 後續每一次再使用這個類別就不需要重複載入
成員變數和局部變數差異
1.定義的位置不同
局部變數: 定義在方法的內部
成員變數: 定義在類別的內部, 方法的外部
2.在記憶體中的存放位置不同
局部變數: 局部變數存放在堆疊區
成員變數: 成員變數存放在堆疊區域
3 .生命週期不同
局部變數: 隨著方法的呼叫而產生,隨著方法的結束而消失 相對較短
成員變數: 隨著物件創建而產生,隨著物件資料回收而消失 相對較長
4.初始值不同
局部變數: 沒有初始值, 使用之前必須進行賦值
成員變數: 有初始值, 引用類型null, 整數0 , 小數0.0 字元:空格, 布林false
封裝性愛
封裝是物件導向的三大特徵之一, 另外兩個是繼承 多型
類別名稱:Person
屬性:name ,age
方法:展示
封裝好處: 提高程式的安全性
對屬性封裝的步驟:
1 .使用private關鍵字修飾對應的屬性, 防止外界透過物件名稱.屬性的方式直接存取屬性
2.書寫對應屬性的set和get方法, 給外界一個存取屬性的通道
」封裝是物件導向程式語言對客觀世界的模擬,客觀世界裡成員變數都是隱藏在物件內部的,外界無法直接操作和修改。
封裝的原則:
將不需要對外提供的內容都隱藏起來。
把屬性隱藏,提供公共方法對其存取。
成員變數private,提供對應的getXxx()/setXxx()方法
好處:
透過方法控製成員變數的操作,提高了程式碼的安全性
把程式碼用方法封裝,提升了程式碼的複用性
變數存取的就近原則:
當出現多個重名變數的時候, 目標程式碼使用的是離這行程式碼最近的那個變數
this可以解決的問題:
當局部變數和成員變數重名的時候, 想在特定的程式碼處存取成員變數, 就可以在目標行的變數名稱前面加this.
this只的是目前呼叫這個方法的物件
this 誰呼叫指的是誰
建構方法
是一個方法. 作用: 給物件的資料賦值預設值
定義格式:
修飾符 方法名稱(參數清單){
# 若乾條初始化語句
}
修飾符: public
方法名稱: 直接寫類別名稱
參數列表: 跟之前定義方法寫形式參數一致
注意建構方法沒有回傳值類型
如果我們自己不手動寫無參數的建構方法, 系統會預設提供一個,如果我們自己手動書寫了無參的構造方法,
那系統就不會給提供,使用的時候直接使用我們自己寫的構造方法
構造方法也是方法也可以進行重載
但凡我們手寫了任意的構造方法, 系統就都不會給提供無參構造方法了,
當此時非要用無參的構造方法創建對象的時候, 必須自己手寫無參的建構方法
以上是物件導向內容詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

JSON(JavaScriptObjectNotation)是一種輕量級的資料交換格式,已成為Web應用程式之間資料交換的常用格式。 PHP的json_encode()函數可以將陣列或物件轉換為JSON字串。本文將介紹如何使用PHP的json_encode()函數,包括語法、參數、傳回值以及具體的範例。語法json_encode()函數的語法如下:st

本站4月17日消息,集邦諮詢(TrendForce)近日發布報告,認為英偉達Blackwell新平台產品需求看漲,預估帶動台積電2024年CoWoS封裝總產能提升逾150%。英偉達Blackwell新平台產品包含B系列的GPU,以及整合英偉達自家GraceArmCPU的GB200加速卡等。集邦諮詢確認為供應鏈目前非常看好GB200,預估2025年出貨量預計超過百萬片,在英偉達高階GPU中的佔比達到40-50%。在英偉達計畫下半年交付GB200以及B100等產品,但上游晶圓封裝方面須進一步採用更複

將MySQL查詢結果陣列轉換為物件的方法如下:建立一個空物件陣列。循環結果數組並為每一行建立一個新的物件。使用foreach迴圈將每一行的鍵值對賦給新物件的對應屬性。將新物件加入到物件數組中。關閉資料庫連線。

使用Python的__contains__()函數定義物件的包含操作Python是一種簡潔而強大的程式語言,提供了許多強大的功能來處理各種類型的資料。其中之一是透過定義__contains__()函數來實現物件的包含操作。本文將介紹如何使用__contains__()函數來定義物件的包含操作,並且給予一些範例程式碼。 __contains__()函數是Pytho

本站7月9日訊息,AMDZen5架構「Strix」系列處理器會有兩種封裝方案,其中較小的StrixPoint將採用FP8封裝,而StrixHalo將會採用FP11封裝。圖源:videocardz訊息源@Olrak29_最新曝料稱StrixHalo的FP11封裝尺寸為37.5mm*45mm(1687平方毫米),和英特爾AlderLake、RaptorLakeCPU的LGA-1700封裝尺寸相同。 AMD最新的PhoenixAPU採用FP8封裝方案,尺寸為25*40mm,這意味著StrixHalo的F

標題:使用Python的__le__()函數定義兩個物件的小於等於比較在Python中,我們可以透過使用特殊方法來定義物件之間的比較操作。其中之一就是__le__()函數,它用來定義小於等於比較。 __le__()函數是Python中的一個魔法方法,並且是一種用於實現「小於等於」操作的特殊函數。當我們使用小於等於運算子(<=)比較兩個物件時,Python

PHP中,數組是有序序列,以索引存取元素;物件是具有屬性和方法的實體,透過new關鍵字建立。數組存取透過索引,物件存取通過屬性/方法。數組值傳遞,物件參考傳遞。

PHP中的封裝技術及應用封裝是物件導向程式設計中的重要概念,它指的是將資料和資料的操作封裝在一起,以便提供對外部程式的統一存取介面。在PHP中,封裝可以透過存取控制修飾符和類別的定義來實現。本文將介紹PHP中的封裝技術及其應用場景,並提供一些具體的程式碼範例。一、封裝的存取控制修飾符在PHP中,封裝主要透過存取控制修飾符來實現。 PHP提供了三個存取控制修飾符,
