PHP面向對象開發(fā)課件_第1頁
PHP面向對象開發(fā)課件_第2頁
PHP面向對象開發(fā)課件_第3頁
PHP面向對象開發(fā)課件_第4頁
PHP面向對象開發(fā)課件_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、(第3講) PHP面向對象開發(fā)的學習(一)1、什么是面向對象,什么是類2、使用CLASS創(chuàng)建一個類3、類的成員屬性和成員方法4、使用new函數(shù)對象實例化本講知識點第1頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(一)1、什么是面向對象起初,“面向對象”是專指在程序設計中采用封裝、繼承、抽象等設計方法??墒牵@個定義顯然不能再適合現(xiàn)在情況。面向對象的思想已經(jīng)涉及到軟件開發(fā)的各個方面。如,面向對象的分析(OOA,Object Oriented Analysis),面向對象的設計(OOD,Object Oriented Design)、以及我們經(jīng)常說的面向對象的編程實現(xiàn)(OOP,Object

2、Oriented Program)。傳統(tǒng)開發(fā)方法存在問題1.軟件重用性差 ,2.軟件可維護性差,3.無很好的擴展性面向對象的要素1. 抽象性 , 2. 封裝性 ,3.共享性 ,4. 強調(diào)對象結構而不是程序結構面向對象的三大特點(封裝,繼承,多態(tài))缺一不可第2頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(一)PC對象屬性:電腦方法:我們理解成提高的功能,看電影,玩游戲,編程,上網(wǎng)什么是類我們可以理解成一個功能集合菜單,我們通過類來實現(xiàn)生成我們的方法類:顯示器鍵盤主機第3頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(一)2、使用CLASS創(chuàng)建一個類class 類名 成員屬性成員方法cl

3、ass MyPcpublic $name;var $price; function vod() return “我是智能機器人; 3、類的成員屬性和成員方法第4頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(一)4、使用new函數(shù)對象實例化class MyPcpublic $name;var $price; function vod() return 我是智能機器人; $pc1 = new MyPc();$pc1-name;new 對象名( 參數(shù) )例:使用 - 訪問對象內(nèi)容第5頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(二)1、創(chuàng)建一個和多個對象2、對象中的$this關鍵字3、初

4、始化對象 _construct()4、析構函數(shù) _destruct()本講知識點第6頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(二)1、創(chuàng)建一個和多個對象創(chuàng)建一個和多個對象我們只需要多次使用 new 函數(shù) ,進行對類的實例化class MyPc public $name; public $price; function vod() return “我會做很多事情; 為了讓大家養(yǎng)成良好的習慣和今后對PHP6的適應,建議使用 public 而不是 var$pc1 = new MyPc();$pc2 = new MyPc();$pc3 = new MyPc();類對象第7頁,共45頁。(第3

5、講) PHP面向對象開發(fā)的學習(二)2、對象中的$this關鍵字$this關鍵字是用來訪問當前對象中的對象屬性和對象方法的系統(tǒng)變量class MyPc public $name; public $price; function vod() $this-name; $this-vod() ; 我們可以理解為$this是在對象中特殊的一種使用構造函數(shù)和變量的方法$this僅能在當前對象中使用第8頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(二)3、初始化對象 _construct()我們在創(chuàng)建一個類有時候需要初始化一些操作,這個時候我們需要使用初始化函數(shù),在PHP5中有兩種初始化方法:1、原

6、PHP4中我們需要建立一個與類名稱相同的一個對象方法:class MyPc function MyPC ( ) 初始化操作 2、在PHP5中繼承了PHP4但為了更好的針對面向對象開發(fā)有了固定函數(shù):class MyPc function _construct() 初始化操作 相等第9頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(二)4、析構函數(shù) _destruct()能夠在對象釋放時自動被調(diào)用的方法被稱為析構函數(shù)PHP4支持析構函數(shù),通過登錄在PHP運行終止時用register_shutdown_function()調(diào)用的函數(shù),只有類似的實行方法。PHP5正式支持析構函數(shù),能夠在類中指定對

7、象釋放時的動作。 我們可以理解為垃圾回收機制當對象內(nèi)部的操作執(zhí)行完畢的時候,_destruct()被調(diào)用,然后對象所使用的內(nèi)存被釋放出來。 class MyPc function _destruct() 規(guī)則:后進先出第10頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(三)封裝 關 鍵字 :public,protected,private封裝相關函數(shù):_set() , _get()類的封裝和應用第11頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(三)封裝關鍵字PublicProtectedPrivate全局XX繼承類X本類public 表示全局,類內(nèi)部外部子類都可以訪問;prote

8、cted表示受保護的,只有本類或子類或父類中可以訪問;private表示私有的,只有本類內(nèi)部可以使用;封裝是把一些相關的屬性和行為隱藏起來,從而得到保護和安全第12頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(三)class MyPc public $name; protected $price; private function vod() $this-name; 全局屬性任何位置都可以引用保護屬性只有本類或子類或父類中可以訪問私有屬性只有本類內(nèi)部可以使用;第13頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(三)封裝相關函數(shù):_set() , _get()某些特定操作的時候需要訪

9、問和賦值封裝的類型,這個時候我們就需要其他的函數(shù)幫我們完成這些操作,PHP為我們提供了個方法名:_set() , _get()_set($Name,$Value)_set() 取得當前類中封裝過私有屬性或者方法重新執(zhí)行或賦值操作_get()_get() 取得當前類中封裝過屬性或方法并轉換成共有屬性第14頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(四)1、繼承關鍵字 :extends2、PHP繼承的規(guī)則3、基類方法重載和父類方法訪問類的繼承和應用第15頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(四)1、繼承關鍵字 :extendsPHP類的繼承,我們可以理解成共享被繼承類的內(nèi)容。

10、PHP中使用extends單一繼承的方法,請切忌?。ǚ荂+多繼承)被繼承的類我們叫做父類(基類)繼承者成為子類(派生類)CLASS1CLASS2CLASS3extendsextends依次被繼承,class3擁有class1、class2所以功能和屬性,避免方法和屬性重名class MyPcclass home extends MyPcextends2、PHP繼承的規(guī)則第16頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(四)3、基類方法重載和父類方法訪問基類派生類因為屬于向下繼承的原理,基類不能使用派生類里內(nèi)容,這個時基類的一些方法不能完成我們的一些派生類的功能,我們就可以進行方法重載避

11、免了,新建方法帶來的混亂。方法重載我們也可以理解方法覆蓋,在派生類里使用與基類方法重名的方法名稱執(zhí)行重載重載時我們需要調(diào)用原始基類內(nèi)容,再增加新內(nèi)容,我們可以使用基類名 : 方法名稱第17頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(五)1、抽象關鍵字 :abstract2、抽象方法和抽象類的定義3、抽象類和方法使用規(guī)則類的抽象方法和類第18頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(五)1、抽象關鍵字 :abstract抽象就是無法確切的說明,但又有一定的概念或者名稱,在PHP中聲明一個抽象類或者方法我們需要使用adstract關鍵字2、抽象方法和抽象類的定義一個類中至少有一個

12、方法是抽象的,我們稱之為抽象類。所以如果定義抽象類首先定義抽象方法。abstract class class1 abstract function fun1();1、類中至少有一個抽象方法2、抽象方法不允許有 3、抽象方法前面必須要加abstract第19頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(五)3、抽象類和方法使用規(guī)則抽象類的幾個特點: 1、不能被實例化,只能被繼承 2、繼承的派生類當中要把所以抽象方法重載才能實例化abstract class cl1 abstract function fun1();class cl2 extends cl1 function fun1()

13、繼承重載所有抽象方法不可實例化可實例化第20頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(六)1、關鍵字 :final2、關鍵字 : self3、關鍵字 :static4、關鍵字 :const類中常用關鍵字第21頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(六)1、關鍵字 :final 用來定義類和方法的一個重要關鍵字,當定義類的時候該類將不能被繼承,當用來定義方法的時候該方法將不能被重載final class class1 final function fun1() 該類將不能被繼承該方法將不能被重載第22頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(六)2、關鍵字 : s

14、elf 用來用類訪問當前類中的內(nèi)容的關鍵字,類似與$this關鍵字,但$this是需要類實例化以后才可以使用,self 可以直接訪問當前類中的內(nèi)部成員self : 類內(nèi)部成員(屬性或者方法)類名 : 類內(nèi)部成員(屬性或者方法)等價于注意:因為沒有實例化類訪問內(nèi)部屬性或者方法是沒有意義的, 所以self一般用來訪問類中的:靜態(tài)成員,常量,或者其他定義內(nèi)容第23頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(六)3、關鍵字 :static 用來定義類的靜態(tài)屬性或方法,可以在類未被實例化時使用,靜態(tài)屬性單獨占用內(nèi)存而不會因創(chuàng)建多個對象時而導致同樣的方法或者屬性重復占用。class class1

15、static $name; static function fun1() 類名稱 : 靜態(tài)成員類名稱 : : 靜態(tài)成員 self : : 靜態(tài)成員靜態(tài)成員的訪問靜態(tài)方法內(nèi)部禁止出現(xiàn)非靜態(tài)內(nèi)容類內(nèi)部訪問靜態(tài)成員類外部訪問靜態(tài)成員第24頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(六)4、關鍵字 :const 用來定義類中的常量,類似PHP外部定義常量的關鍵字define(); Const只能修飾類當中的成員屬性!class class1 const NAME; function fun1() 注意事項:1、建議大寫常量2、常量不使用$符號第25頁,共45頁。(第3講) PHP面向對象開發(fā)的

16、學習(七)1、接口的介紹與創(chuàng)建 關鍵字 :interface2、接口的引用與規(guī)范 關鍵字 :implements類中接口的應用第26頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(七)1、接口的介紹與創(chuàng)建接口:一種成員屬性全部為抽象的特殊抽象類,在程序中同為規(guī)范的作用1、類中全部為抽象方法2、抽象方法前不用加abstract3、接口抽象方法屬性為public4、成員屬性必須為常量1、類中至少有一個抽象方法2、抽象方法前需加abstract抽象類接口區(qū)別共同點:1、本身都不能被實例化,必須被繼承或者引用2、繼承或者引用后,需要把所有抽象方法重載方可使用第27頁,共45頁。(第3講) PHP面

17、向對象開發(fā)的學習(七)1、接口的介紹與創(chuàng)建接口有自己的創(chuàng)建關鍵字:interface 與普通類的創(chuàng)建類似interface demo const NAME=名字; function Fun1(); function Fun2();聲明接口類對象屬性必須為常量對象方法全部為抽象方法,前面無須加adstract第28頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(七)2、接口的引用與規(guī)范 接口引用區(qū)別與之前我們的學的類繼承關鍵字 extends,繼承只能是單一性,而接口可以使用關鍵字:implements 多個引用并用逗號 , 分開.1、普通類引用接口例子: class mypc implem

18、ents demo , demo2 , demo3 2、抽象類引用接口例子: abstract class mypc implements demo , demo2 , demo3 設已有接口 demo , demo2 , demo3第29頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(七)2、接口的引用與規(guī)范3、繼承父類引用接口并存例子: class mypc extends root implements demo , demo2 , demo3 4、接口與接口繼承: interface demo3 extends demo 設已有接口 demo , demo2 , demo3 父類

19、root先繼承后接口,單繼承多接口第30頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(八)1、多態(tài)的介紹與優(yōu)勢2、運算符 :instanceof3、多態(tài)的簡單應用類中多態(tài)的應用第31頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(八)1、多態(tài)的介紹與優(yōu)勢 多態(tài)性是繼抽象和繼承后,面向對象語言的第三個特征。從字面上理解,多態(tài)的意思是“多種形態(tài)”,簡單來說,多態(tài)是具有表現(xiàn)多種形態(tài)的能力的特征,在OO中是指“語言具有根據(jù)對象的類型以不同方式處理。 OOP的模式并不僅僅是把很多函數(shù)和功能集合起來,目的而是使用類,繼承,多態(tài)的方式描述我們生活中的一種情況。從而使得我們的代碼更具有“物”的意義。

20、幫助我們減少一些重復性的代碼和條件語句的判斷。介紹優(yōu)勢第32頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(八)2、運算符 :instanceofPHP 一個類型運算符。instanceof 用來測定一個給定的對象是否來自指定的對象類。class A class B $thing = new A;if ($thing instanceof A) echo A;if ($thing instanceof B) echo B;第33頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(八)3、多態(tài)的簡單應用第34頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(九)1、對象描述的配置2、對象方

21、法的異常處理3、克隆對象的應用4、自動載入對象的方法總結篇第35頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(九)1、對象描述的配置 我們可以直接打印對象句柄,從而獲得該方法的基本信息或其他內(nèi)容。class Myfunction _tostring ( ) echo 我所要顯示的內(nèi)容; 方法名 _tostring()$p = new My();echo $p;輸出結果:我所要顯示的內(nèi)容第36頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(九)2、對象方法的異常處理 調(diào)用一些不存在的對象方法的異常處理,使程序繼續(xù)正常運行。class Myfunction _call($n,$v) ec

22、ho 錯誤的方法名.$n; echo 錯誤的參數(shù).Print_r($v); 方法名 _call($funname,$arr_value)因為參數(shù)會有多個所要用數(shù)組的方式保存,打印的時候也要就用print_r 輸出第37頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(九)3、克隆對象的應用 通過克隆的方式我們可以在內(nèi)存中生成兩個一樣的對象或升級原對象。class Myfunction _clone( ) echo 克隆時自動調(diào)用的函數(shù); 方法名 _clone() 關鍵字 clone$a=new My()$b=$a; $a=new My()$b= clone $a; 內(nèi)存中只有一個對象內(nèi)存中會

23、有兩個對象第38頁,共45頁。(第3講) PHP面向對象開發(fā)的學習(九)4、自動載入對象的方法 快速取得對象名稱并自動載入進當前頁面function _autoload($class_n) include($class_n.php); $p=new Mypc(); $d=new demo();方法名 _autoload()將會被自動調(diào)用,執(zhí)行如下include(mypc.php);include(demo.php);該方法是在類以外單獨的方法也就是我們所謂的構造函數(shù)第39頁,共45頁。(第3講) 制作自己的PHP+MYSQL的類學習目標1、鞏固學習常用MYSQL函數(shù)2、使用類封裝常用SQL操作

24、,簡化代碼3、認識面向對象在開發(fā)中的重要作用第40頁,共45頁。(第3講) 制作自己的PHP+MYSQL的類用到的知識:1、private 私有屬性關鍵字2、_construct 初始化方法名3、常用mysql函數(shù)4、常用SQL語句第41頁,共45頁。學習重點1、PHP注入的基本原理2、防止注入的幾種辦法3、PHP其他地方安全設置(第3講) PHP如何防止注入及開發(fā)安全第42頁,共45頁。(第3講) PHP如何防止注入及開發(fā)安全1、PHP注入的基本原理 程序員的水平及經(jīng)驗也參差不齊,相當大一部分程序員在編寫代碼的時候,沒有對用戶輸入數(shù)據(jù)的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數(shù)據(jù)庫查詢

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論