關於C#--面相對象基礎總結

來源:互聯網
上載者:User

標籤:style   io   color   ar   使用   sp   資料   on   問題   

A1 10.1號,祖國生日時候,我開始痛下決心決心以後搞軟體,一副苦大仇深的樣子,想把《Head first C#》看完。期間挫折叢叢,最大的錯誤在於想把這本書快速看完,忽視了效率 ,終於快看完了,才知道沒有做筆記,理解不透徹,有的地方甚至模糊。明白:好的學習方法是最大的效率。急於求進度,往往導致,結果自己不能接受,遇到問題,不去解決,只會更加糾結。做完,在床上,入睡前,隨手撿一本書翻翻《大話設計模式》,瞬間我如癡如醉,很多模糊的概念也能理順了,花了一上午,把一些C#一些概念重新梳理下,於是這篇總結誕生了。這篇很多內容取自《大話設計模式》。

A2 類與執行個體

類:就是具有相同的屬性和功能的對象的抽象的集合。

執行個體:執行個體就是一個真實的對象,而執行個體化就是建立對象的過程,使用new關鍵字。

Cat cat = new Cat() ; 是用new,將Cat類執行個體化,建立執行個體cat。

A3 構造方法

構造方法,即建構函式。其功能就是對類進行初始化。構造方法與類同名,無需傳回值,也不需要void。

Cat cat = new Cat() ;  Cat() 就是建構函式,對Cat 進行初始化。 

Class Cat

  {

    private string name = "" ;

    public Cat (string name)

    {

      this.name = name ; 

    }

  }

A.4 方法重載

方法重載:提供了建立同名的多個方法的能力,但是這些方法需要使用不同的參數類型。

Class Cat

  {

    private string name = "" ;

    public Cat (string name)

    {

      this.name = name ; 

    }

    public Cat()

    {

      this.name = "無名";

    }

  }

注意的是:方法重載時,必須要方法名相同,參數類型或個數必須要有所不同。

重載可以在不改變原方法的基礎上,增加新功能。

A.5  屬性與修飾符

屬性是一個方法或一對方法,但在調用它的代碼來看,它是一個欄位,即屬性適合於以欄位的方式使用方法調用的場合。

private int shoutNum = 3 ;

public int ShoutNum

{

  get {return shoutNum ;}

  set {shoutNum = value ;}

}

get :get訪問器 返回與申明的屬性相同的資料類型,表示的意思是調用時可以得到內部欄位的值或引用;set; set訪問器沒有顯示設定參數,但它有一個隱式參數,用關鍵字value表示,它的作用是調用屬性時可以可以給內部的欄位或者引用賦值。

總結:變數私人的叫欄位,共有的叫屬性。

A6 封裝

傳說中物件導向三大特徵:封裝,繼承,多態;三個常用的修飾符:piblic private protected .

每個對象都包含它能夠進行操作所需要的所有資訊,因此對象不依賴其他對象來完成自己的操作,我們稱之為:封裝。

Dog dog = new Dog() ;//其中Dog()我們把它封裝了,然後就可以調用Dog()了,但是外在無法修改它。

A7 繼承

對象的繼承代表了一種 is-a 關係,如果有2對象,A和B,可以描述為B是A,則表明B可以繼承A(狗是動物,則狗可以繼承動物的一切方法屬性,private除外)。

如果子類繼承父類:(1)子類擁有父類除private的屬性和功能。(2)子類具有自己的屬性和功能,即子類可以擴充父類沒有的屬性和功能.(3)子類還可以以自己的方式實現父類的功能。

對於建構函式,它不能被繼承,只能被調用。

Class Dog : Animal

  {

  }

繼承的缺點:1 父類變,子類不得不變。 2 繼承會破壞封裝,父類的細節暴露給子類。

A8 多態

多態表示不同的對象可以執行相同的動作,但要通過它們自己的實現代碼來執行。

注意三點:(1)子類以父類的身份出現(2)子類在工作時以自己的方式來實現。(3)子類以父類的身份出現時,子類特有的屬性和方法不可用。

為了使子類的執行個體完全接替來自父類的成員,父類必須將該成員聲明為虛擬(virtual)。子類可以使用override關鍵字,將父類實現替為自己的實現,這就是 重寫 Override .

Class Animal

{

  public virtual string Shout()

  {

  }

}

Class Dog : Animal

{

  public override string Shout()

  {

  }

}

A 9 重構

理解不夠透徹,下次再寫吧。

A 10 抽象類別

c#准許把類和方法申明為abstract , 即抽象類別和抽象方法。

需注意幾點:(1)抽象類別不能執行個體化(2)抽象方法必須是被子類重寫的方法。(3)如果類中包含抽象方法,那麼類就必須定義為抽象類別,不論是否包含其他方法。

A 11 介面

實現介面的類就必須實現介面中所有的方法和屬性

一個類可以支援多個介面,多各類也可以支援相同介面。

介面用interface 進行申明,前面加上 I 。

介面與抽象3個區別:

1 類是對對象的抽象,抽象類別是對類的抽象,介面是對行為的抽象。

2 如果行為跨越不同的類,可以用介面。對於一些相似的類,用繼承抽象類別。

3 從設計角度講 ,抽象類別是從子類中發現公用的東西,泛化出父類,然後子類繼承父類,而介面是根本不知子類的存在,方法如何?還不確認,預先定義。

  

A 12 集合

數組優點:在記憶體中是連續的,運算速度快。

.NET Framework 提供了資料存放區和檢索的專用類,這些類型統稱集合。這些類提供對堆棧,隊列,列表,雜湊表的支援。

A 13 泛型

泛型集合首先需要 System.Collection.Generic的命名空間。

List類是ArrayList 類的泛型等效類。

A 14 事件與委託

下次寫,還不太透徹

 

總結:所有知識點都需要實踐,等《First Head》看完了,就看《模式設計》,多敲代碼。

 

關於C#--面相對象基礎總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.