版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄1面向對象的概念2類的聲明3類的數(shù)據(jù)成員和屬性4構造函數(shù)的特點5抽象、封裝、繼承、多態(tài)面向對象的概念
對象:對象是人們要進行研究的任何事物,從最簡單的整數(shù)到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件。事件與方法:事件又稱為消息,表示向對象發(fā)出的服務請求。方法表示對象完成服務或執(zhí)行的操作功能。
類:具有相同特性(數(shù)據(jù)元素)和行為(功能)的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象,類實際上就是一種數(shù)據(jù)類型。類(不占內存)與對象(占內存)的關系就是抽象與具體。類的聲明在面向對象的編程中,通常把用類創(chuàng)建對象的過程稱為實例化,其格式如下:用日期類創(chuàng)建了一個日期的對象,就叫對象的實例化。多數(shù)語言中,實例化一個對象就是為對象開辟內存空間,或者是不用聲明,直接使用。實例化時必須使用new關鍵字,new構造函數(shù)名(),建立一個臨時對象。有時候,靜態(tài)(static)的方法可以直接調用。[訪問修飾符]class類名[:基類]{類的成員;}類的成員:類的數(shù)據(jù)成員、方法成員類名對象名=new類名(參數(shù)1,參數(shù)2,參數(shù)n);如:Datedate=newDate();類的數(shù)據(jù)成員和屬性
類的數(shù)據(jù)成員包括類的常量、字段、屬性、索引器、方法事件、構造函數(shù)等,其中常量、字段和屬性都是類的數(shù)據(jù)有關的成員。1.常量:常量的值固定不變,格式如下:[訪問修飾符]const數(shù)據(jù)類型常量名=常量的值;2.字段:字段表示類的成員變量,字段的值代表某個對象的數(shù)據(jù)狀態(tài)聲名字段的方法和定義普通變量的方法相同,格式如下[訪問修飾符]數(shù)據(jù)類型字段名;3.構造函數(shù):構造函數(shù),是一種特殊的方法。主要用來在創(chuàng)建對象時初始化對象,即為對象成員變量賦初始值,總與new運算符一起使用在創(chuàng)建對象的語句中。特別的一個類可以有多個構造函數(shù),可根據(jù)其參數(shù)個數(shù)的不同或參數(shù)類型的不同來區(qū)分它們即構造函數(shù)的重載。構造函數(shù)的特點構造函數(shù)的命名必須和類名完全相同。構造函數(shù)的功能主要用于在類的對象創(chuàng)建時定義初始化的狀態(tài)。它沒有返回值,也不能用void來修飾。這就保證了它不僅什么也不用自動返回,而且根本不能有任何選擇。而其他方法都有返回值,即使是void返回值。盡管方法體本身不會自動返回什么,但仍然可以讓它返回一些東西,而這些東西可能是不安全的;構造函數(shù)不能被直接調用,必須通過new運算符在創(chuàng)建對象時才會自動調用;而一般的方法是在程序執(zhí)行到它的時候被調用的;當一個類只定義了私有的構造函數(shù),將無法通過new關鍵字來創(chuàng)建其對象,當一個類沒有定義任何構造函數(shù),C#編譯器會為其自動生成一個默認的無參的構造函數(shù)。構造函數(shù)有回滾的效果,構造函數(shù)拋出異常時,構造的是一個不完整對象,會回滾,將此不完整對象的成員釋放。抽象、封裝、繼承、多態(tài)抽象
是處理事物復雜性的方法,只關注當前目標有關的方面,而忽略與當前目標無關的那些方面。繼承
通過繼承機制,所定義的新成員擁有舊成員的屬性和方法。我們稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生出的新類稱為,又稱為子類。多態(tài)
在中,接口的多種不同的實現(xiàn)方式即為多態(tài)。同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結果。在運行時,可以通過指向基類的指針,來調用實現(xiàn)派生類中的方法。封裝
封裝,即隱藏對象的屬性和實現(xiàn)細節(jié),僅對外公開接口,控制在程序中屬性的讀和修改的訪問級別;將抽象得到的數(shù)據(jù)和行為(或功能)相結合,形成一個有機的整體,也就是將數(shù)據(jù)與操作數(shù)據(jù)的進行有機的結合,形成“類”,其中數(shù)據(jù)和函數(shù)都是類的成員。訪問修飾符類修飾符成員修飾符123修飾符關鍵字readonly與const的區(qū)別3訪問修飾符internal(內部的)只能在當前項目中訪問Public(公有的)可以在任何類中訪問。Private(私有的)訪問僅限于該類的內部。Protected(受保護的)訪問僅限于該類及其派生類。類修飾符abstract抽象類
指示一個類只能作為其它類的基類,不能實例化,可以繼承,沒有方法體。sealed密封類
指示一個類不能被繼承。理所當然,密封類不能同時又是抽象類,因為抽象總是希望被繼承的。不是類的每個成員方法都可以作為密封方法密封方法,必須對基類的虛方法進行重載,提供具體的實現(xiàn)方法。所以,在方法的聲明中,sealed修飾符總是和override修飾符同時使用。成員修飾符delegate委托
用來定義一個函數(shù)指針。C#中的事件驅動是基于delegate+event的。Const常量
指定該成員的值只讀不允許修改,默認是靜態(tài)的Event事件
聲明一個事件。new
在派生類中隱藏指定的基類成員,從而實現(xiàn)重寫的功能。若要隱藏繼承類的成員,請使用相同名稱在派生類中聲明該成員new修飾符修飾它。Virtual虛擬
指示一個方法或存取器的實現(xiàn)可以在繼承類中被覆蓋,重寫。Static靜態(tài)
指示一個成員屬于類型本身,而不是屬于特定的對象。即在定義后可不經(jīng)實例化,就可使用。Extern外部
指示方法在外部實現(xiàn)。override重寫
對由基類繼承成員的新實現(xiàn)。關鍵字readonly與const的區(qū)別
readonly和const所聲明的字段都是只讀的。1.const字段只能在該字段的聲明中初始化。2.readonly字段可以在聲明或構造函數(shù)中初始化。因此,根據(jù)所使用的構造函數(shù)readonly字段可能具有不同的值。3.const字段是編譯時常數(shù),而readonly字段可用于運行時常數(shù)。4.const默認就是靜態(tài)的,而readonly如果設置成靜態(tài)的就必須顯示聲明。5.const對于引用類型的常數(shù),可能的值只能是string和null。6.readonly可以是任何類型??偨Y:const只能在初期就使用常量初始化好。對于每一次編譯后的結果,const的值是固定的,而readonly的值是可以在運行的時候才確定值的。抽象類與抽象方法概述1接口的概述2抽象類與接口的比較3接口與抽象類抽象類和抽象方法概述抽象方法是指在基類的定義中,不包含任何實現(xiàn)代碼的方法,實際上就是一個不具有任何具體功能的方法。抽象類是不完整的,如果一個類中沒有包含足夠的信息來描述一個具體的事物,這就是抽象類。注意:在抽象類中,也可以聲明非抽象方法、虛方法和數(shù)據(jù)類型。聲明抽象方法時,抽象方法沒有方法體,只在方法聲明后跟上一個分號。抽象成員必須在抽象類中聲明,但抽象類不要求必須包含抽象成員。抽象類的格式:Publicabstractclass抽象類名{[訪問修飾符]abstract返回值類型方法名([參數(shù)列表]);}接口是一個引用類型,通過接口可以實現(xiàn)多重繼承。C#中接口的成員不能有new、public、protected、internal、private等修飾符。接口中只能聲明"抽象"成員(所以不能直接下一步對接口進行實例化(即不能使用new操作符聲明一個接口的實例對象)),而不能聲明共有的域或者私有的成員變量。接口聲明不包括數(shù)據(jù)成員,只能包含方法、屬性、事件、索引等成員。接口的命名規(guī)則和類名一樣,接口名稱一般都以“I”作為首字母(當然不這樣聲明也可以),這也是接口和類的一個區(qū)別之一。接口接口成員的訪問級別是默認的(默認為public),所以在聲明時不能再為接口成員指定任何訪問修飾符,否則編譯器會報錯。接口成員不能有static、abstract、override、virtual修飾符,使用new修飾符不會報錯,但會給出警告說不需要關鍵字new。在聲明接口成員的時候,不準為接口成員編寫具體的可執(zhí)行代碼,也就是說,只要在對接口進行聲明時指明接口的成員名稱和參數(shù)就可以了。接口一旦被實現(xiàn),實現(xiàn)類必須實現(xiàn)接口中的所有成員,除非實現(xiàn)類本身是抽象類(通過具體的可執(zhí)行代碼實現(xiàn)接口抽象成員的操作)。在C#中,聲明接口使用interface關鍵字,一般形式如下
intterface接口名[:繼承接口名]{接口成員}抽象類與接口的比較抽象類由abstract關鍵字來修飾,接口由interface關鍵字來修飾。抽象類是一種不能實例化的類,抽象類可以包含抽象成員,也可包含非抽象成員和數(shù)據(jù)成員;抽象類可以完全實現(xiàn),也可以部分實現(xiàn),或者不實現(xiàn)。抽象類可以用來封裝所有派生類的通用功能。接口頂多是一個完全沒有實現(xiàn)的只包含抽象成員的抽象類(純抽象類),不能被實例化,可以包含數(shù)據(jù)成員,但必須是常量,使用接口無法來封裝所有派生類的通用功能。抽象類是對象的抽象化,接口是一種行為規(guī)范,接口代碼實現(xiàn)由開發(fā)者完成,接口在創(chuàng)建就不能在更改,如果修改必須創(chuàng)建新的接口,一個類只能從一個基類派生,但是可以從多個接口派生。c/s架構優(yōu)點c/s架構是一種比較早的軟件架構,主要應用于局域網(wǎng)內。主要可以從以下三個方面來闡述其優(yōu)點。一、客戶端和服務器直接相連。點對點的模式使得更安全??梢灾苯硬僮鞅镜匚谋?,減少獲取文本的時間和精力。由于直接相連,減少了通信流量,這對于客戶來說可以節(jié)約一大筆費用。直接相連,中間沒有什么阻隔或岔路,所以響應速度快。當通信量少的時候沒什么感覺,但是如果通信量龐大,就不會出現(xiàn)擁堵的現(xiàn)象。二、客戶端可以處理一些邏輯事務。充分利用兩者的硬件設施,避免資源的浪費。為服務器分擔一些邏輯事務,可以進行數(shù)據(jù)處理和數(shù)據(jù)存儲??梢蕴幚韽碗s的事務流程??蛻舳擞幸惶淄暾麘贸绦?,在出錯提示、在線幫助等方面都有強大的功能,并且可以在子程序間自由切換。三、客戶端操作界面??梢蕴岣呖蛻舻囊曈X體驗,滿足客戶需求??蛻舳瞬僮鹘缑婵梢噪S意排列,充分滿足客戶的需要,展現(xiàn)特點與個性。C/S架構的缺點一、客戶端只能處理一些功能單一的多系統(tǒng)。C/S架構適用于局域網(wǎng),對網(wǎng)速的要求比較高。由于需要安裝客戶端,安裝部署困難,所以不易擴展。若客戶端使用的系統(tǒng)不同,就要針對這些系統(tǒng)分別編寫程序??蛻舳私缑嫒狈νㄓ眯?,且當業(yè)務更改時就需要更改界面,重新編寫客戶端需要專門的客戶端程序,比較麻煩,針對點多面廣且不具備網(wǎng)絡條件的用戶群體,不能夠實現(xiàn)快速部署安裝和配置。二、服務器用戶數(shù)增多會出現(xiàn)通信擁堵,服務器響應速度慢等情況。當客戶端用戶增多時,當服務器難當大任時,只能使用更強大的服務器。用戶是通過ODBC連接到數(shù)據(jù)庫的,且每個連接到數(shù)據(jù)庫的用戶都會保持一個ODBC連接,會一直占用中央服務器的資源,對服務器的要求很高。三、用戶沒有安裝客戶端的外部用戶不能訪問。只有安裝了客戶端才能訪問服務器,所以用戶不能隨時隨地的訪問。用戶是通過ODBC連接到數(shù)據(jù)庫的,所以用戶數(shù)受限,不易擴張。由于針對小范圍的客戶,所以不能實現(xiàn)真正大范圍的信息共享,信息傳達和發(fā)布四、成本系統(tǒng)升級維護麻煩,需要更改大量程序,投入大量精力和金錢。業(yè)務擴展或變更時,需要更改程序,客戶端的界面也需要重新更改。初次投入成本后不能一勞永逸,后期需要很多成本,比如服務器的更換,客戶端的更變等。B/S架構的優(yōu)點一、瀏覽器能面對廣大的用戶實現(xiàn)信息傳播共享。瀏覽器只處理一些簡單的邏輯事務,負擔小。頁面的更新能實現(xiàn)同步,所有用戶都能看到。界面設計開發(fā)簡單,對程序員的要求較低,不需要大量的培訓。業(yè)務擴展方便,只需要增加幾個業(yè)務擴展的頁面即可,不需要大量的編程。界面不需要太多的編寫,比較通用,更改界面也比較簡單,所以幾乎不需要維護。由于Web的平臺無關性,可以從一臺服務器、幾個用戶的工作組級擴展成為擁有成上萬用戶的大型系統(tǒng)。二、服務器數(shù)據(jù)都集中存放在數(shù)據(jù)庫服務器,所以不存在數(shù)據(jù)不一致現(xiàn)象。能有效地保護數(shù)據(jù)平臺和管理訪問權限,服務器數(shù)據(jù)庫也很安全在數(shù)據(jù)庫服務器上不一定使用WINDOWS系統(tǒng),選擇更多,成本更少。如果是異地,只需要把服務器連接專網(wǎng)即可,實現(xiàn)遠程維護、升級和共享。在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構管理軟件更是方便、快捷、高效。數(shù)據(jù)存放在數(shù)據(jù)庫服務器,客戶端并不存放任何業(yè)務數(shù)據(jù)或者數(shù)據(jù)庫連接信息,所以數(shù)據(jù)比較安全。隨著服務器負載的增加,可以平滑地增加服務器的個數(shù)并建立集群服務器系統(tǒng),然后在各個服務器之間做負載均衡。三、用戶B/S建立在廣域網(wǎng)上,所需的網(wǎng)速不高。外部的用戶也可以對瀏覽器進行訪問,界面人性化,通用化。不需要安裝客戶端,只要能連上網(wǎng),就能隨時隨地的瀏覽頁面。借助Internet強大的信息發(fā)布與信息傳送能力可以有效地解決企業(yè)內部的大量不規(guī)則的信息交流。所有的用戶都是通過一個JDBC連接緩沖池連接到數(shù)據(jù)庫的,用戶并不保持對數(shù)據(jù)庫的連接,用戶數(shù)基本上是無限的。四、成本軟件重用性強,節(jié)省了大量的成本。不需要安裝特殊的軟件,客戶端幾乎零維護。一般只有初期一次性投入成本,有利于軟件項目控制和避免IT黑洞開發(fā)簡單,升級便捷,客戶端幾乎不需要維護,建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡硬件環(huán)境,例如電話上網(wǎng),租用設備等,成本較小。B/S架構的缺點一、客戶端面通用化,不突出個性。頁面需要不斷地動態(tài)刷新,尤其是用戶增多,網(wǎng)速慢得情況,很費時。由于不需要安裝客戶端,客戶端易擴展,還有就是外部用戶也可以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉庫員工聘用合同模板模板
- 代理外貿合同模板
- 2024年企業(yè)重組法律服務合同
- 2024年工程招投標居間保密合同
- 2024年保險合同違約責任與爭議處理
- 2024年工程承包中介合同樣本
- 2024年平板運輸車租賃協(xié)議
- 2024年業(yè)務外包合同詳解
- 04環(huán)境評估塔吊環(huán)境影響評估合同
- 博物館裝飾改造協(xié)議
- 《第二單元 影視金曲 眺望你的路途》教學設計教學反思-2023-2024學年初中音樂人音版七年級下冊
- 2024年支部書記廉潔談話記錄內容篇
- 心肺復蘇+AED技術
- DL-T 1476-2023 電力安全工器具預防性試驗規(guī)程
- 20S805-1 雨水調蓄設施-鋼筋混凝土雨水調蓄池
- 中華民族共同體概論課件專家版3第三講 文明初現(xiàn)與中華民族起源(史前時期)
- 消防安全 牢記心間
- 腳手架搭設及驗收(匯編)
- 零星維修工程施工組織設計
- 五年級上冊數(shù)學教學設計-植樹問題 人教版
- 社區(qū)兒童健康管理案例分析報告
評論
0/150
提交評論