物件,類,命名空間,繼承

2022-03-25 21:28:13 字數 1938 閱讀 4201

就是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面(也就會牽涉到下面要談到的介面的概念)比如相思鳥和烏鴉,我們在抽象時,我們忽略它們嘴的不一樣,而我們只在意它們都是有嘴的:mouth;我們忽略它們羽毛顏色的不一樣,而只在意它們的羽毛是有顏色的:color;然後我們抽象出嘴、羽毛顏色等特點。然後我們通過抽象出的這些特點,將它們封裝成鳥類bird,這就是封裝。在使用時,我們會通過封裝出的bird類來給鳥類的屬性賦值,比如bird.mouth1=尖嘴,bird.mouth2=圓嘴,這樣我們又還原出鳥類的不同的特點,這正印證了那句話「抽象讓我們忽略細節,在不同的層次上處理細節,封裝則是填補了抽象留下的空白」簡單來說就是函式。比如你寫了乙個庫,裡面有很多函式,如果別人要使用你這個庫,但是並不知道每個函式內部是怎麼實現的。使用的人也就只是知道這個函式的入口引數和返回值或者這個函式是做什麼的。對於使用者來說 ,你的這些函式就是api,即介面物件是具有具體屬性值的乙個個體,是具體的類是乙個模板,它描述一類物件的行為和狀態,是抽象的

舉例:學生student就是乙個類,通常有姓名,性別,年齡,學號等等屬性。而具體到某一學生,比如student png,他的屬性分別為張三,男,21,1234等等,這個png就是乙個物件。1.封裝:如上所述

2.繼承:可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。舉例:有a和b,突然有一天你發現,他們是c 族的人。那麼你就可以用對待c族人的方法來對待a和b。

3.多型 :允許你將父物件設定成為和乙個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作。簡單的說,就是一句話:允許將子類型別的指標賦值給父類型別的指標。1.什麼是命名空間?從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。例如,在作業系統中目錄用來將相關檔案分組,對於目錄中的檔案來說,它就扮演了命名空間的角色。具體舉個例子,檔案 foo.txt 可以同時在目錄/home/greg 和 /home/other 中存在,但在同乙個目錄中不能存在兩個 foo.txt 檔案。另外,在目錄 /home/greg 外訪問 foo.txt 檔案時,我們必須將目錄名以及目錄分隔符放在檔名之前得到 /home/greg/foo.txt。這個原理應用到程式設計領域就是命名空間的概念。

2.命名空間用來解決什麼問題?

在php中,命名空間用來解決在編寫類庫或應用程式時建立可重用的**如類或函式時碰到的兩類問題:

example #1 命名空間語法示例

<?php 

namespace

my\name; // 參考 "定義命名空間" 小節

class

myclass {}

function

myfunction

() {}

const myconst = 1;

$a = new myclass;

$c = new \my\name\myclass; // 參考 "全域性空間" 小節

$a = strlen('hi'); // 參考 "使用命名空間:後備全域性函式/常量" 小節

$d = namespace\myconst; // 參考 "namespace操作符和__namespace__常量」 小節

$d = __namespace__ . '\myconst';

echo constant($d); // 參考 "命名空間和動態語言特徵" 小節

?>

摘自php官網。捂臉~_~

和一張正經圖,哈哈哈~~:

類命名空間 物件的命名空間 查詢順序

類命名空間與物件的命名空間 類的命名空間 建立乙個類就會建立乙個類的命名空間,用來儲存類中定義的所有名字,這些名字稱為類的屬性 類有兩種屬性 靜態屬性和動態屬性 靜態屬性 直接在類中定義的變數 動態屬性 定義在類中的方法 其中類的資料屬性是共享給所有物件的 id egg.role 434159407...

day9 繼承模式 命名空間 物件列舉

傳統形式 原型鏈 過多的繼承了沒用的屬性 借用建構函式 不能繼承借用建構函式的原型 每次建構函式都要多走乙個函式 function person name,age,function student name,age,grade var student newstudent 共享原型 不能隨便改動自己...

命名空間 物件列舉

在實際專案開發中,往往乙個頁面由多人共同開發,這個時候就存在乙個問題,一旦命名的變數相同,將會導致衝突,如下 張三定義的內容 var num 123 李四定義的內容 var num 我是乙個字串 這個張三在後面呼叫num時就會發生錯誤,為了避免該情況的產生,我們一般使用立即執行函式 閉包的功能進行開...