PHP程序設計項目化教程課件 項目8 購物車系統-面向對象程序設計_第1頁
PHP程序設計項目化教程課件 項目8 購物車系統-面向對象程序設計_第2頁
PHP程序設計項目化教程課件 項目8 購物車系統-面向對象程序設計_第3頁
PHP程序設計項目化教程課件 項目8 購物車系統-面向對象程序設計_第4頁
PHP程序設計項目化教程課件 項目8 購物車系統-面向對象程序設計_第5頁
已閱讀5頁,還剩81頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

購物車系統

——面向對象程序設計

項目8張華同學觀察到購買學習資料和生活用品流程煩瑣、等待時間長,他提出了開發一個便捷校園購物系統的想?法。為提高系統運營效率,尤其是庫存和銷售管理,張華選擇利用面向對象程序設計技術來構建一個模塊化、可擴展且易維護的購物車系統。此系統旨在讓用戶輕松添加、刪除商品,并實時查看購物車內商品的總?價。通過這個系統的實現,能夠為同學們帶來便捷的購物體驗,節省時間,豐富校園生活。購物車系統熟悉面向對象的思想,了解面向過程和面向對象程序設計思想的差異;掌握類與對象的使用方法,包括類的定義和實例化方法、類成員的訪問方法等;了解常見的魔術方法,掌握構造方法和析構方法的用法;掌握類常量和靜態成員的定義和訪問;了解面向對象的三大特性,掌握封裝、繼承、多態的實現方法;掌握抽象類和接口的定義和實現。能夠編寫遵循面向對象原則的代碼:涵蓋類的設計、方法的實現以及對象的使用;能夠熟練運用封裝、繼承、多態三大特性設計程序;能夠根據實際需求應用抽象類和接口。培養良好的面向對象程序設計習慣,編寫出更加模塊化、可擴展和易于維護的代碼;提高問題解決能力,能夠運用面向對象的方法分析和解決復雜問題;培養創新思維,能夠運用面向對象知識解決實際問題,為軟件開發和系統管理貢獻力量。面向對象類和對象魔術方法類常量和靜態成員面向對象的特性抽象類和接口面向對象PART01PHP是一種功能強大的混合型程序設計語言,它支持面向對象程序設計和面向過程程序設計兩種范式。對于簡單的腳本和小型應用,使用面向過程的程序設計范式可能更加直觀和高效。然而,在處理大型、復雜的項目時,面向對象程序設計展現出了其獨特的優?勢。8.1面向對象面向過程就是按照一系列步驟去解決問題,這些步驟通常是按照特定的順序執行函數,以實現所需功能。面向對象程序設計采用了一種更符合人類思維方式的方法來解決問題。在面向對象程序設計中,我們分析問題中的對象,并定義它們的特性(屬性)和行為(方法),對象之間通過信息傳遞進行交互,共同完成任務。面向過程與面向對象在思維方式上有著本質的區別。在面向過程中,我們關注的是過程本身,扮演著執行者的角色;而在面向對象中,我們更關注對象,扮演著指揮官的角?色。以日常生活中的洗衣服為例,面向過程的方法會關注洗衣的每一個具體步驟,面向對象的方法則更側重于洗衣機這個對象及其提供的功能。8.1.1面向過程和面向對象的對比為了理解面向對象程序設計與面向過程程序設計兩種范式,可以將它們比作餐飲中的兩種不同制作方式:蓋澆飯和蛋炒飯。使用面向對象程序設計能夠更好地處理復雜問題,提高代碼的可讀性、可維護性和可擴展性。而面向過程程序設計更適合某些簡單或性能敏感的場景。因此,在選擇程序設計方法時,我們應充分考慮問題的特性和需求,以選擇最適合的設計方案。8.1.2面向對象程序設計的優勢代碼重用性面向對象程序設計更像制作蓋澆飯。在這種范式下,問題被分解為多個獨立的對象(如不同的菜品和米飯),每個對象負責處理自己的數據和行為。這些對象之間通過接口進行通信,就像蓋澆飯中的菜品和米飯靈活組合在一起。這種設計方式不僅提高了代碼的可讀性和可維護性,還使得程序更加易于擴展和重用。代碼重用性面向過程程序設計就像制作蛋炒飯,各種成分(如雞蛋、米飯、蔬菜等)緊密融合在一起,形成一個整體。在這種范式下,程序員詳細規劃每一步的操作順序。然而,當問題變得復雜,或者需要添加新的功能時,這種方式可能會導致代碼變得難以維護和擴展。面向對象程序設計的思維方式與我們的日常思維方式非常相似。比如,在描述一個人時,我們會考慮其姓名、性別、年齡等特征,以及行為如駕駛和烹飪等。在面向對象程序設計中,這些特征被稱作屬性,行為被稱作方法。簡而言之,面向對象程序設計允許我們將現實世界的事物抽象成對象,并為這些對象賦予屬性和方法。8.1.3面向對象的核心概念1.類的概念類是具有相同屬性和方法的一組對象的抽象描述??梢允褂枚x的類創建對象。在PHP中,通過類創建的對象稱為對象實例,而創建對象的過程就是類的實例化過程。類是一個抽象的概念,對象則是這個抽象概念的具體實例。2.對象的概念在面向對象程序設計中,對象是來自客觀世界的實體,如人類、書桌等。對象可分為靜態部分(屬性)和動態部分(方法)。屬性是對象的靜態特征,如人的身高、體重等;方法是對象的行為,如人的行走、說話等。在編程時,我們首先將現實世界的實體抽象為對象,再定義其屬性和方法。8.1.3面向對象的核心概念3.對象的屬性和方法對象包含兩個核心要素:屬性和方法。屬性是描述對象特征的變量,也稱為成員變量。方法是描述對象行為的函數。在PHP中,對象是屬性和方法的集合,方法表示對象的行為,而屬性表示對象的狀態。通過訪問和設置屬性,以及調用方法,我們可以對對象進行各種操?作。8.1.3面向對象的核心概念類和對象PART02在PHP中,使用class關鍵字定義類。類的成員主要包含屬性(變量)和方法(函數)。屬性用于描述對象的特征,例如人的姓名、年齡等。方法用于描述對象的行為,例如說話、走路等。聲明類的語法格式如?下。說明:類名:PHP的類名不區分大小寫,但為了保持代碼的一致性和可讀性,通常采用大駝峰命名法,即每個單詞的首字母大寫。例如,Student表示學生類。屬性列表:是多個屬性的聲明。方法列表:是多個方法的聲明。通常,屬性聲明放在方法聲明之前。類可以沒有任何成員,也可只有屬性或方?法。8.2.1類的定義class類名{

...//屬性列表

...//方法列表}Student類定義示例代碼。8.2.1類的定義//定義一個學生類classStudent{

//成員屬性

public$name="張華";

public$age=20;

//成員方法

publicfunctionshowInfo()

{

echo"ThisisStudentclass.";

}}PHP提供了3種訪問控制修飾符來設定類成員的可見性:public(公有),protected(受保護)和private(私有)。3種訪問控制修飾符對應的權限屬性如下表所示,其中,√表示允許訪問,×表示不允許訪?問。說明:

public:聲明公共的成員,在類的內部和外部都可以訪問。如果成員不顯式指定訪問控制修飾符,則默認為public。protected:聲明受保護類中的成員,只能在類的內部和子類訪?問。private:聲明私有的類中的成員,只能在類的內部訪問,不能被繼?承。8.2.2訪問控制修飾符PHP類成員定義的示例代碼如?下。8.2.2訪問控制修飾符classStudent{

public$id=1; //公共的成員屬性,不受訪問限制

protected$name="張三"; //受保護的成員屬性,能在類內和子類中訪問

private$age=20; //私有的成員屬性,僅能在類內訪問

publicfunctionshowInfo() //公共的成員方法

{

echo"Thisispublicmethod.";

}

privatefunctionprivateInfo() //私有的成員方法

{

echo"Thisisprivatemethod.";

}}在PHP中定義一個類之后,若要使用類的方法或屬性,需要先實例化一個類,這個實例便是類中的對象。PHP中使用new關鍵字創建對象,實例化類的基本語法格式如?下。

說明:$對象名:表示要創建的新實例的變量名,通過這個實例可以訪問類中的成員。變量名要遵循PHP中變量的命名規范,盡量做到見名知?義。new:表示創建一個新的對?象。類名:表示要實例化的類的名稱。類名后面括號包含的是可選參數的列表,用于初始化類的成員屬性。如果在實例化類時,不需要傳遞參數,則可以省略類名后面的括?號。8.2.3類的實例化$對象名=new類名([參數1,參數2,…]);例如,實現在8.2.1節定義的Student類的基礎上創建兩個學生對象并輸出的代碼如下。運行結果如下圖所示。8.2.3類的實例化$stu1=newStudent();//實例化Student類,創建學生對象$stu1$stu2=newStudent();//實例化Student類,創建學生對象$stu2echo"<pre>";print_r($stu1);print_r($stu2);echo"</pre>";實例化一個類后,可使用對象訪問符->訪問對象實例的屬性或方法,具體的語法格式如?下。在對象方法執行時會自動定義一個$this特殊變量,表示對當前對象的引用。通過$this->的形式可引用當前對象的方法和屬性,其作用是完成對象內部成員之間的訪問。$this只能在類定義的方法中使用,不能在類定義的外部使?用。8.2.4訪問類的成員對象名->屬性名; 對象名->方法名;類外部訪問類的成員示例。8.2.4訪問類的成員classStudent{public$name;publicfunctionsayHello(){return"你好!我是".$this->name;}}$stu1=newStudent(); //實例化對象$stu1->name="張陽"; //直接訪問對象$stu1的name屬性echo$stu1->sayHello(); //調用對象$stu1的sayHello()方法在學習編程時,有時會在類的成員方法中直接使用echo語句來輸出文本,這樣便于理解代碼的運行結果。但在真正的項目開發中,更傾向于使用return語句來輸出數據。1.提高可重用性當使用return語句時,方法可以返回一個具體的值。這個值既可以被直接賦給某個變量,也可以在其他地方使用。相比之下,echo語句只是簡單地輸出數據到瀏覽器。2.便于測試和調試使用return語句返回的值可以很方便地用于測試和調試。3.代碼更清晰通常建議將業務邏輯(如計算、數據處理)與表示邏輯(如數據顯示)分開。使用return語句就能很好地實現這一點。4.用途更廣泛return語句返回的值不僅用于輸出,它還有用于條件判斷、保存到數據庫或發送給客戶端等多種用?途。為何在類方法中使用return語句而非echo語句【案例實踐8-1】類的實例化及類成員的訪問定義Student

類,實例化它并訪問其成員?!景咐龑嵺`8-1】類的實例化及類成員的訪問運行結果如下圖所?示。在PHP中,對象的比較方式與基本數據類型不同。當需要比較兩個對象是否相等時,可以采用同一性比較或值比較兩種方?式。(1)同一性比較(===

!==)使用===和!==比較操作符時,比較的是兩個變量是否為同一個實例,即它們是否引用同一個對?象。(2)值比較(==

!=)使用==和!=比較操作符時,PHP會嘗試進行值的比較。如果兩個對象是同一個類的實例,且兩個對象的屬性和屬性值相同,那么它們在值上被認為是相等?的。如果需要確認兩個變量是否確實指向同一個對象,應使用同一性比較;如果只關心兩個對象的內容是否一致,可使用值比較。8.2.5對象的比較對象的比較示例。8.2.5對象的比較在PHP中,還可以使用instanceof關鍵字檢查一個對象是否為某個類的實例,返回布爾值。instanceof關鍵字左邊的變量表示對象,右邊的變量表示類名。如果對象是指定類或其子類的實例,則返回true,否則返回false。8.2.5對象的比較var_dump($stu1instanceofStudent);//輸出bool(true),因為$stu1是Student類的實例var_dump($stu1instanceofTest);//輸出bool(false),因為$stu1不是Test類的實例魔術方法PART03在PHP中,魔術方法是一組特殊的類方法,指那些以兩條下畫線(__)開頭預定義的方法。這些方法會在PHP腳本運行期間的不同時刻被自動調用,不需手動調?用。8.3魔術方法魔術方法可以讓開發者實現各種高級功能,如屬性重載、方法重載、對象序列化、自定義對象字符串表達方式等。常見的魔術方法如下表所?示。8.3.1常見的魔術方法每個類中都有一個構造方法,它在創建類的實例時自動調用,也就是使用new關鍵字來實例化對象時自動調用,常用于對象屬性的初始化賦值或者執行一些必要的初始化操作。構造方法被命名為__construct(),其語法格式如下。上述語法格式中,訪問控制修飾符可以省略,默認值為public。8.3.2構造方法[訪問控制修飾符]function__construct([參數列表]){//初始化操作}構造方法示例。8.3.2構造方法如果類中沒有顯式定義構造方法,PHP會隱式地創建一個默認的構造方法。這個默認的構造方法不接收任何參數,也不執行任何操作,其形式大致如下。無顯式定義構造方法的類示例。8.3.2構造方法publicfunction__construct(){//無操作}與構造方法對應的是析構方法,析構方法在對象被銷毀之前自動調用。析構方法通常用于在對象銷毀前執行一些清理操作,比如關閉文件句柄、釋放資源或者執行一些需要在對象銷毀時完成的特殊操作。析構方法被命名為__destruct(),且不接收任何參數。8.3.3析構方法[訪問控制修飾符]function__destruct(){//清理操作}使用析構方法示例。8.3.3析構方法本案例實踐實現了一個Person類,該類通過構造方法對屬性進行初始化賦值,通過析構方法執行清理操作?!景咐龑嵺`8-2】構造方法和析構方法的應用類常量和靜態成員PART04在PHP中,類不僅可以定義普通的屬性和方法,還可以包含類常量和靜態成員。類常量是固定不變的值,而靜態成員屬于類本身,不屬于任何一個類的實例,這兩者都可以被類的所有實例共?享。8.4類常量和靜態成員類常量是在類中定義且值不會改變的常量。定義后,它在類的所有對象中都是相同的。類常量使用const關鍵字聲明,并使用類名直接訪問,基本語法格式如下。類常量的命名規范與普通常量的一致,通常以大寫字母表示類常量名。類常量可以通過類名直接訪問,即在類的內部或外部通過“類名::類常量名”的方式進行訪問。::稱為范圍解析操作符,又稱雙冒?號。8.4.1類常量const類常量名='常量值';示例:定義一個包含類常量的Circle類,并計算圓的周長和面積。8.4.1類常量除了類常量,靜態成員在類的所有實例之間共享,可以通過類名直接訪問,無須創建類的實例。靜態成員有兩種,分為靜態屬性和靜態方法。在PHP中,靜態成員使用static關鍵字定義。定義靜態成員的基本語法格式如下。訪問靜態成員的基本語法格式如下。8.4.2靜態成員publicstatic屬性; //定義靜態屬性publicstatic方法(){}; //定義靜態方法類名::屬性名; //訪問靜態屬性類名::方法名(); //調用靜態方法示例:靜態成員的用法。8.4.2靜態成員類常量:通常用于定義不會更改的常量,如數學常量、配置選項等。類常量是不可變的,因此非常適合用于需要保證一致性的場?合。靜態屬性:用于在類之間共享數據,而不必通過實例化對象來訪問。它們可以用于存儲類的狀態信息、緩存數據等。靜態屬性是可變的,因此可以用于需要動態修改數據的場?合。類常量和靜態屬性的應用場景在PHP的類中,self

關鍵字是一個特殊的類引用,它用于引用當前類本身,而不是類的實例。self關鍵字用于在類的內部引用當前類的類常量、靜態屬性和靜態方法,不能在類的外部使?用。在PHP的類中,以static關鍵字聲明的屬性為靜態屬性,以static關鍵字聲明的方法為靜態方法,使用范圍解析運算符::來訪問類中的靜態屬性和靜態方?法。在類內,對靜態方法或靜態屬性的訪問建議用self,不要用$this->的形式。對非靜態方法或屬性的訪問不能用self,只能用$this->。self和static關鍵字面向對象的特性PART05面向對象程序設計有三大核心特性,即封裝、繼承和多態,它們共同為開發者提供了一種更加靈活、可維護和可擴展的編程方式。8.5面向對象的特性封裝是面向對象程序設計中的一個關鍵概念。在編程中,當需要保護某些數據不被外部隨意訪問或修改時,就需要用到封?裝。在編程中,封裝是指將數據(屬性)和操作這些數據的方法緊密地結合在一起。這樣做的好處是可以隱藏數據的具體實現細節,只通過特定的方法來訪問或修改這些數據。在PHP中,我們可以通過設置屬性的訪問權限來實現封裝,即將屬性設置為private或protected,這樣它們就不能被類的外部直接訪問。對于private或者protected權限的屬性,PHP提供了以下3種訪問方式。8.5.1

封裝1.使用公共方法訪問私有成員在類中,可以使用private來封裝屬性,這意味著這些屬性只能在對象內部被訪問。為了從外部訪問這些私有屬性,我們可以在類中定義公共方?法。類的封裝示例。8.5.1

封裝2.利用魔術方法訪問私有屬性PHP提供了一些特殊的魔術方法,如__set($name,$value)和__get($name),它們允許在讀取或寫入不可訪問屬性時被調用,這為訪問和修改類內部的封裝屬性提供了靈活?性。示例:使用__set()和__get()魔術方法來訪問Employee類私有屬性$salary。8.5.1

封裝3.使用魔術方法訪問未定義成員除__get()和__set()之外,PHP還提供了__call($name,$arguments)魔術方法,它會在調用對象中不存在的方法時被自動調用。8.5.1

封裝在面向對象程序設計中,繼承描述的是類和類之間的一種關系,它允許一個類(子類)繼承另一個類(父類)的屬性和方法,這就像在現實世界中,孩子會繼承父母的一些特征和行為一?樣。通過繼承,子類可以在不改變父類的基礎上進行擴展,添加新的功能或特性。這種機制能夠重用代碼,減少代碼重復編寫。以運動項目為例。假設有一個“運動”類,包含一些通用的屬性和方法。然后,可以創建“球”和“田徑”類作為“運動”類的子類。進一步,“籃球”和“足球”類又可以作為“球”的子類,“短跑”和“長跑”類則可以作為“田徑”類的子類,這樣就形成了一個清晰的運動項目繼承體系,如下圖所?示。8.5.2繼承PHP使用extends關鍵字實現子類與父類之間的繼承,其基本語法格式如下。PHP中的類只允許單繼承,即一個類只能直接從一個類繼承。例如,“球”繼承“運動”,“籃球”繼承“球”,但是“籃球”不能同時繼承“球”和“運動”。8.5.2繼承class子類名extends父類名{//子類的內容定義}示例:使用繼承創建一個Ball類,它從Sport類繼承。8.5.2繼承在PHP中,可使用parent關鍵字調用父類的內容。使用parent關鍵字可調用的父類的內容包括:類常量、靜態屬性、靜態方法、成員屬性、成員方法等。使用parent關鍵字的語法格式如下。認識parent關鍵字parent::父類常量名; //調用父類類常量parent::父類屬性名; //調用父類靜態屬性或成員屬性parent::父類方法名(); //調用父類靜態方法或成員方法父類ParentClass有一個方法method()。當創建了一個子類ChildClass,并在個子類中調用父類的method()方法,可使用parent關鍵字。認識parent關鍵字classParentClass{publicfunctionmethod(){echo'這是父類定義的方法。';}}classChildClassextendsParentClass{publicfunctioncallMethod(){parent::method(); //在子類中調用父類的成員方法}}$obj=newChildClass();$obj->callMethod(); //輸出“這是父類定義的方法?!痹赑HP中,當需要在繼承的過程中保證某些類或方法不被改變,需使用final關鍵字將類定義成最終類,或將方法定義成最終方法。使用final關鍵字定義的類不能被繼承,只能被實例化;使用final關鍵字定義的方法不能重?寫。使用final關鍵字的語法格式如?下。認識final關鍵字finalclass類名 //最終類{[訪問控制修飾符]finalfunction方法名(){} //最終方法}使用final關鍵字定義類的示例代碼如?下。認識final關鍵字finalclassPerson{//類的實現//這個類不能被繼承}//下面的代碼會導致錯誤,因為Person類被聲明為finalclassStudentextendsPerson{}classAnotherClass{publicfinalfunctionfinalMethod(){echo"這個方法不能被重寫。";}}classChildClassextendsAnotherClass{//導致錯誤,因為finalMethod()被聲明為finalpublicfunctionfinalMethod(){}//錯誤:不能重寫最終方法AnotherClass::finalMethod()}多態是指在同一個操作域操作不同的對象,會產生不同的執行結果。在面向對象程序設計中,多態的實現離不開繼承,當多個對象繼承了同一個對象后,就獲得了相同的方法,然后可以根據每個對象的需求來改變同名方法的執行結?果。在PHP中,多態可以通過繼承和接口來實現(接口在后文講解)。當一個類繼承自另一個類時,它可以添加新的功能或者覆蓋(重寫)父類的方法,這樣,一個父類(如Person類)可以被多個子類(如Student類)繼承,每個子類都可以有自己的行為,同時共享父類的特?性。8.5.3多態比如,存在父類“人”類,它可以被“學生”類繼承。雖然“人”類和“學生”類都有“介紹自己”這個功能,但介紹的內容會有所不同,這就是多態的體現。8.5.3多態【案例實踐8-3】實現學校運動員參賽得獎統計實現個人運動員和團隊運動員的參賽和得獎統計。不同類型的運動員的比賽方式和統計結果有所不?同。首先,定義運動員父類Athlete。【案例實踐8-3】實現學校運動員參賽得獎統計然后,定義個人運動員子類IndAthlete和團隊運動員子類TeamAthlete?!景咐龑嵺`8-3】實現學校運動員參賽得獎統計最后,實例化IndAthlete類和TeamAthlete類,創建個人運動員對象和團隊運動員對象,調用相應參賽方法等?!景咐龑嵺`8-3】實現學校運動員參賽得獎統計運行結果如下圖所?示。抽象類和接口PART06抽象類和接口是面向對象程序設計中用于實現抽象化的重要概念,它們的存在分別解決了代碼復用與多態性實現的問題,適用于不同的程序設計場?景。8.6抽象類和接口抽象類是不能被實例化的類,只能作為其他類的父類。抽象類的作用是為子類提供一個共同的接口和部分實現。抽象類可以包含抽象方法(沒有具體實現的方法)、非抽象方法(有具體實現的方法)、屬性和常?量。以abstract關鍵字聲明的類稱為抽象類。以abstract關鍵字聲明的方法稱為抽象方法。任何一個類,只要有一個方法被聲明為抽象方法,這個類就必須被聲明為抽象類。抽象方法只是聲明了其調用方式(參數),具體實現需要子類來完成。8.6.1抽象類abstractclass類名 //定義抽象類{

publicabstractfunction方法名(); //定義抽象方法}繼承一個抽象類時,子類必須實現父類中的所有抽象方法;另外,這些方法的訪問控制修飾符必須和抽象父類中的一樣(或者訪問權限更寬松)。例如,某個抽象方法被聲明為受保護的,子類中實現的方法就應該聲明為受保護的或者公有的,而不能聲明為私有的。此外,方法的調用方式必須匹配,即類型和強制參數數量必須一?致。抽象類應用示例。8.6.1抽象類如果一個抽象類中的所有方法都是抽象的,那么可以將其定義為接口。接口通常用于定義一組公共的方法,而不關心這些方法的具體實現過程。這使得接口可以被不同的類實現,從而實現多?態。接口是用interface關鍵字定義的類,可以指定必須實現哪些方法,但不需要定義這些方法的具體內容,并且所有方法都必須是公有的;可以定義常量,其和類常量的用法完全相同,但是在PHP8.1之前不能被子類或子接口所覆蓋;可以定義魔術方法,以便要求類實現這些方法。定義接口的語法格式如下。8.6.2接口interface接口名 //定義接口{

publicfunction方法名(); //定義公共方法}一個類可以實現一個或多個接口??墒褂胕mplements關鍵字實現接口。類中必須實現接口中定義的所有方法,否則會出現嚴重錯誤。類可以實現多個接口,用逗號分隔多個接口的名稱即?可。8.6.2接口class類名implements接口名 {類的內容定義 //必須實現接口中定義的方法}接口應用示例。8.6.2接口【案例實踐8-4】實現常見交通工具的應用汽車和飛機作為交通工具,都需要具備燃料續航的功能。因此可以通過抽象類和接口提煉共同的屬性、必需的方法,再通過子類繼承抽象類各自的不同功能,實現接口和必需的方?法。首先,使用Vehicle抽象類來定義所有交通工具共有的屬性和方法。【案例實踐8-4】實現常見交通工具的應用定義一個Refuelable接口來表示具有加油能力的交通工具,包含抽象方法refuel()。代碼如下。//Refuelable接口interfaceRefuelable{publicfunctionrefuel($fuelAmount);}【案例實踐8-4】實現常見交通工具的應用定義Car子類和Plane子類,它們都繼承Vehicle類并實現Refuelable接口,各自包含特有的屬性和方法?!景咐龑嵺`8-4】實現常見交通工具的應用實例化Car子類和Plane子類,創建Car對象和Plane對象,調用各自的方法。為實現購物車系統,需要確定購物車系統的功能需求:用戶能夠添加商品到購物車、刪除購物車中的商品、查看購物車中的商品列表、修改購物車中商品的數量、計算購物車中商品的總價、清空購物車?等。首先,利用面向對象的封裝、繼承、多態的思想,設計商品類(Product)及其子類食品類(Food)和電子產品類(Electronics類);設計購物車類(Cart),用于管理購物車中的商品項,如下圖圖所?示。然后,設計購物車前端界面,用于展示商品列表、購物車內容等;設計后端邏輯,處理購物車操作并使用Session來存儲購物車數?據。最后,構建出一個穩定、安全的購物車系統,保證其具備良好的性能,較高的安全性、可維護性和擴展?性。任務8-1定

溫馨提示

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

評論

0/150

提交評論