《PHP Web應用開發(fā)案例教程》630-9(阮云蘭)教案 第14課 面向對象的程序開發(fā)_第1頁
《PHP Web應用開發(fā)案例教程》630-9(阮云蘭)教案 第14課 面向對象的程序開發(fā)_第2頁
《PHP Web應用開發(fā)案例教程》630-9(阮云蘭)教案 第14課 面向對象的程序開發(fā)_第3頁
《PHP Web應用開發(fā)案例教程》630-9(阮云蘭)教案 第14課 面向對象的程序開發(fā)_第4頁
《PHP Web應用開發(fā)案例教程》630-9(阮云蘭)教案 第14課 面向對象的程序開發(fā)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE8PAGE8PAGE7PAGE7

課題面向對象的程序開發(fā)課時2課時(90min)教學目標知識技能目標:(1)了解面向對象的概念(2)了解類和對象的關系(3)掌握類中變量和方法的應用素質目標:(1)能夠領會PHP面向對象的程序開發(fā)的理念,在生活中學以致用(2)培養(yǎng)精益求精、科學嚴謹、追求卓越的工匠精神(3)緊跟時代發(fā)展,了解前沿科技,樹立科技報國的人生理想教學重難點教學重點:類和對象教學難點:類中變量和方法的應用教學方法案例分析法、問答法、討論法、講授法、實踐法教學用具電腦、投影儀、多媒體課件、教材教學設計第1節(jié)課:→→→傳授新知(38min)第2節(jié)課:→傳授新知(20min)→課堂實訓(15min)→課堂小結(3min)→作業(yè)布置(2min)教學過程主要教學內容及步驟設計意圖第一節(jié)課課前任務【教師】布置課前任務,和學生負責人取得聯系,讓其提醒同學通過文旌課堂APP或其他學習軟件,預習本節(jié)課要學習的知識【學生】完成課前任務通過課前任務,使學生預習本節(jié)課要學習的知識,增加學生的學習興趣考勤(2min)【教師】使用文旌課堂APP進行簽到【學生】班干部報請假人員及原因培養(yǎng)學生的組織紀律性,掌握學生的出勤情況問題導入(5min)【教師】提出以下問題:面向對象編程的理念是從生活中抽象出來的,你能舉出生活中類和對象的相關的例子嗎?通過問題導入,引導學生主動思考,激發(fā)學生的學習興趣傳授新知(38min)【教師】通過學生的回答引入要講的知識,講解面向對象的程序開發(fā)的相關知識8.1面向對象的基本概念?【教師】安排學生掃碼觀看視頻“面向對象的基本概念”,講解知識?【學生】掃碼觀看、理解、記憶此處的面向對象,準確地說應該叫作“面向對象編程”。面向對象編程(objectorientedprogramming,OOP)是一種計算機編程架構,它能使代碼更加簡潔,更易于維護,并且具有更強的可重用性。?【教師】講解“大國工匠”中的內容,增強學生的集體榮譽感,樹立科技報國的理想汪成為,于1994年當選為首批中國工程院院士,曾任國家“863計劃”專家委員會委員、信息領域首席科學家、智能計算機專家組組長、國家“973計劃”專家委員會委員,曾獲何梁何利基金“科學與技術進步獎”、中國計算機學會終身成就獎等榮譽。早在2004年,中國工程院第七次院士大會上,汪院士對21世紀初信息技術發(fā)展趨勢做出預判,他提出,網絡技術將發(fā)展為協(xié)同計算;多媒體技術將發(fā)展為虛擬現實;面向對象技術將發(fā)展為面向智能體技術;嵌入技術將發(fā)展為普適技術。在這些技術的支持下,21世紀初,有望實現一個智能化的人機和諧環(huán)境。10多年后,基于虛擬計算、異構網絡、人工智能理念所研發(fā)的智能物流、智能管家、智能汽車等應用正逐步實現。8.1.1類和對象的關系算術運算符是最簡單和最常用的運算符,用于進行四則運算,尤其是對數字的處理,幾乎都要用到算術運算符。類(class)和對象(object)是面向對象編程的核心概念。類是對一類事物的描述,它定義了事物的抽象特點,類的定義包含了數據的形式及對數據的操作。對象是類的實例,是實際存在的該類事物的某個個體。在計算機中,可以將類理解為一個抽象模型,而對象是實實在在存儲在內存區(qū)域中的一個實體。簡單來說,類是用于生成對象的代碼模塊。同很多面向對象的語言一樣,PHP也是通過關鍵字class加類名來定義類的,與一個類關聯的代碼必須用大括號括起來。其定義的格式如下:<?phpclassSimpleClass{//類體}?>類名可以是任意數字和字母的組合,但不能以數字開頭。一般采用首字母大寫,而后每個單詞首字母大寫的形式定義類名,以便于閱讀。上面定義的SimpleClass是一個最簡單的類,僅有一個框架,但這并不影響其存在。如果把類看作生成對象的模板,則對象就是根據該模板構造的數據。例如,可以把SimpleClass類作為生成SimpleClass對象的模型,其定義的格式如下:<?phpclassSimpleClass{//類體}$S=newSimpleClass();?>上述代碼使用“new”關鍵字創(chuàng)建了一個SimpleClass的對象。8.1.2類中的變量類中的變量是指在class中聲明的變量,稱為成員變量(也稱屬性或字段),用于存放數據信息。成員變量與普通變量相似,其定義的格式如下:key$age="23";關鍵字key可以是public,protected,private,static和final中的任意一個。public(公有):表示變量在類的內部和外部都可以被讀取和修改。protected(受保護):表示變量可以被其自身及其子類和父類讀取和修改。private(私有):表示變量只能被其定義所在的類訪問。這些關鍵字不僅可用于修飾變量,也可用于類和方法。static和final的應用將在8.3節(jié)詳細介紹。要訪問成員變量,可以使用“->”符號連接對象和變量名。在方法(函數)內部通過“$this->”訪問同一對象的變量。?【教師】通過多媒體展示例8-1的代碼和運行結果,并進行講解<?phpclassSimpleClass{public$nationality="China"; //定義公有變量$nationality public$age="23"; //定義公有變量$age}$S=newSimpleClass(); //創(chuàng)建對象echo"女孩的國籍是:".$S->nationality."<br>"; //輸出對象$S的屬性$nationalityecho"女孩的年齡是:".$S->age; //輸出對象$S的屬性$age?>例8-1中為類定義了兩個變量,并設置了初始值,也可以在變量定義時不設置初始值。PHP并沒有強制變量必須在類中聲明,可以隨時動態(tài)增加變量到對象。如以下代碼:$S->age=23;但是這種用法并不好,一般不建議使用。private修飾的變量不能在當前對象之外被直接訪問,一般用于隱藏數據,以保證某些數據的安全。在PHP中,指向對象的變量是引用變量,該變量里存儲的是所指向對象的內存地址。引用變量傳值時,傳遞的是對象的地址,而非復制該對象。$S=newSimpleClass();$S1=$S;此處是引用傳遞,$S1與$S指-向同一個內存地址。?【教師】通過多媒體展示例8-2的代碼和運行結果,并進行講解引用傳遞的應用。實例代碼如下:<?phpclassSimpleClass{public$nationality="China"; //定義共有變量$nationality}$S=newSimpleClass(); //創(chuàng)建對象$S1=$S;$S1->nationality="England"; //改變$S1的nationality屬性值echo"對象S1的nationality屬性值是:".$S1->nationality."<br>"; //輸出對象$S1的屬性$nationality值echo"對象S的nationality屬性值是:".$S->nationality;//$S的屬性$nationality值?>由圖8-2可以看出,兩個對象的nationality屬性值都為“England”,說明$S1和$S指向的是同一個對象。8.1.3類中的方法類中的方法(又叫成員方法)是指在類中聲明的特殊函數。它與普通函數的區(qū)別在于,普通函數實現的是某個獨立的功能;而成員方法是實現類的一個行為,是類的一部分。其定義的格式如下:publicfunctionsetAge($age){$this->age=$age;//方法體}?【教師】通過多媒體展示例8-3的代碼和運行結果,并進行講解成員方法的定義與使用。實例代碼如下:<?php $a=-300; //聲明變量$a $b=120; //聲明變量$b<?phpclassSimpleClass{/*成員變量*/public$age=23;/*成員方法*/publicfunctionsetAge($age){$this->age=$age;}publicfunctiongetAge(){return$this->age;}}$a=newSimpleClass(); //創(chuàng)建對象$a->setAge("26"); //改變$a的age值echo$a->getAge(); //輸出改變后的值?>例8-3中定義成員方法時定義了參數$age,使用該方法時,可以向方法內部傳遞參數變量。方法內接收到的變量是局部變量,僅在方法內部有效??梢酝ㄟ^向屬性傳遞變量值的方式,讓該變量應用于整個對象。同屬性的訪問一樣,可以使用“->”連接對象和方法名來調用方法,所不同的是,調用方法時必須帶有圓括號(參數可選)。在PHP中,如果聲明類的方法時帶有參數,而調用該方法時沒有傳遞參數,或者參數數量不夠,系統(tǒng)會報錯。如果參數數量超過方法本身定義參數的數量,系統(tǒng)會忽略后面多出來的參數,不會報錯。PHP允許在定義函數時為參數設定默認值。在調用該方法時若沒有傳遞參數,系統(tǒng)會使用默認值填充該參數變量。同時還允許向一個方法內部傳遞另一個對象的引用。?【教師】通過多媒體展示例8-4的代碼和運行結果,并進行講解引用對象。實例代碼如下:<?phpclassm{public$age=23;}classn{publicfunctiongetAge($a){return$a->age;}}$a=newm();$P=newn();echo$P->getAge($a);?>【學生】聆聽、思考、記錄通過教師的講解和演示,使學生了解面向對象的程序開發(fā)的相關知識第二節(jié)課問題導入(5min)【教師】提出以下問題:每一個對象都是從類中實例化出來的,但這些對象都有自己不同的屬性,那么怎樣在實例化對象的時候給對象初始化一些變量呢?對于構造出來的對象在使用完成之后又如何刪除呢?【學生】思考、舉手回答通過問題導入,引導學生主動思考,激發(fā)學生的學習興趣傳授新知(20min)【教師】通過學生的回答引入新知,介紹構造和析構方法8.1.4構造方法當將一個類實例化為一個對象時,可能同時需要初始化一些變量。下面定義了一個類,代碼如下:classSimpleClass{public$name="糖糖"; //定義公有變量$namepublic$height="172"; //定義公有變量$heightpublic$nationality="China"; //定義公有變量$nationalitypublic$sex="女"; //定義公有變量$sexpublic$age="23"; //定義公有變量$age}下面將類SimpleClass聲明為一個對象,并為該類的一些成員變量賦初值。代碼如下:$girl=newSimpleClass('糖糖','172','China','女','23'); //實例化類,并傳遞參數$girl->name="糖糖"; //為變量$name賦值$girl->height="172"; //為變量$height賦值$girl->nationality="China"; //為變量$nationality賦值$girl->sex="女"; //為變量$sex賦值$girl->age="23"; //為變量$age賦值由以上代碼可以看出,如果賦值較多,程序寫起來會特別麻煩。為此,PHP引入了構造方法。構造方法是一種特殊的方法,主要用于在創(chuàng)建對象時初始化對象,即為對象成員變量賦初始值,其總與new運算符一起在創(chuàng)建對象的語句中使用。定義構造方法的格式如下:void__construct([mixed$args[,$...]])上式中的“__”是兩條下畫線“_”。?【教師】通過多媒體展示例8-5的代碼和運行結果,并進行講解構造方法。下面通過具體實例來查看構造方法的應用,體會它與普通成員方法的不同之處。實例代碼如下:<?phpclassSimpleClass{ publicfunction__construct($name,$height,$nationality,$sex,$age){//定義構造方法 $this->name=$name; //為變量$name賦值 $this->height=$height; //為變量$height賦值 $this->nationality=$nationality; //為變量$nationality賦值 $this->sex=$sex; //為變量$sex賦值 $this->age=$age; //為變量$age賦值 } publicfunctionmodelsize(){ //聲明成員方法 if($this->height<180and$this->age<20){ return$this->name.",符合模特招聘的要求!"; //方法實現的功能 }else{ return$this->name.",不符合模特招聘的要求!"; //方法實現的功能 } }}$girl=newSimpleClass('糖糖','172','China','女','16'); //實例化類,并傳遞參數echo$girl->modelsize(); //執(zhí)行類中的方法?>由例8-5可以看出,使用構造方法,在將方法實例化為對象時,只需一條語句即可完成對成員變量的賦值操作。8.1.5析構方法析構方法(析構函數)與構造方法正好相反,當對象結束其生命周期時(如對象所在函數已調用完畢),系統(tǒng)自動執(zhí)行析構函數以釋放內存。定義析構函數的格式如下:void__destruct(void)-?【教師】通過多媒體展示例8-6的代碼和運行結果,并進行講解引用對象。實例代碼如下:<?phpclassDestructable{function__destruct(){echo"執(zhí)行析構函數";}}$obj=newDestructable();f

溫馨提示

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

評論

0/150

提交評論