本節書摘來自異步社群《.net程式員面試秘笈》一書中的第1章,面試題1,作者: 張雲翯, 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
.net程式員面試秘笈
本章内容包含面向對象程式設計和.net的基礎概念題,由于這部分題目涉及的範圍比較廣,是以在很多公司的面試題中占了比較大的比重。很多.net程式員在編寫代碼時非常熟練,但往往缺乏對基礎知識的深刻了解,進而導緻面試失敗。這類知識是程式設計的基礎,如果不加以重視,程式編寫就沒有創造性,隻能學一步,做一步。
面向對象程式設計是目前流行的程式設計方式,被大多數進階語言支援。.net程式同樣是基于面向對象的設計,隻有深刻了解面向對象的程式設計理念,才可以開發出結構良好的、更易維護的.net程式。
說明:
本書采用c#語言編寫.net程式示例。
本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。
【考點】面向對象程式設計思想概念的了解,面向對象設計的應用範圍,用c#實作面向對象設計方法。
【出現頻率】
面向對象是程式開發的一種機制,其特征為封裝、繼承、多态及抽象。以面向對象的方式編寫程式時,需要将複雜的項目抽象為多個對象互相協作的模型;然後編寫類型的結構,聲明或實作類型的成員,即描述對象的特征和行為。在項目中編寫不同的類型完成不同的功能,最後在程式中通過類的執行個體處理實際的問題。
此處類型不僅僅指類,還可能包括接口、結構等。
面向對象程式設計簡稱為oop,其“對象”的含義類似于生活中的“物體”。相對于以前的程式設計方式,面向對象程式設計更注重于人的思維方式,可極大地提高程式的開發效率。面向對象程式設計将程式看作多個互相分離的功能子產品,各個子產品之間分工合作,并且有着極低的耦合度。面向對象程式設計中最重要的概念是類(即class),類是描述各個功能子產品的模闆,而程式中工作的子產品實體被稱為對象(即object)。
類和對象的概念好比動物學的分類,貓科動物就是一個類,老虎也是一個類,并且屬于貓科動物類,動物園中某隻老虎的實體則是一個對象。老虎類擁有貓科動物類的所有特征和行為,但有自己獨特的特征和行為。而某隻老虎符合老虎類特征描述和行為定義,可能還有部分獨特的特征。是以類可以繼承另一個類,如老虎類繼承了貓科動物類。類是産生對象的一個模闆,對象擁有類的一切特征和行為。關于類和對象的基本關系如圖1.1所示。
面向對象程式設計的重點是類的設計,面試者應能熟練地編寫簡單的類并建立對象,展示基本的oop文法。以圖1.1為例,編寫圖中相應的類,并通過虎類建立一隻體重為100kg、長度為200cm的老虎對象。建立一個.cs檔案,并命名為ooptest.cs,編寫代碼如程式1.1所示。
在指令行下編譯ooptest.cs後,執行ooptest程式,其效果如圖1.2所示。
當使用者首先輸入了“50,100”,程式建立了一隻老虎的對象,并通路了部分資料字段和方法。
下文所有目前章的程式示例将在目前章編号的目錄下建立并運作,最後進行歸檔,例如第1章每個示例檔案歸檔到ch01目錄下,而第2章每個示例檔案歸檔到ch02目錄下,依此類推。