C# VS 物件導向基礎(一)

來源:互聯網
上載者:User

     物件導向(Object Oriented,OO)的相關知識學習了很多了,這篇部落格我從C#實現物件導向的理論來做個初步的總結。

 

    在這篇部落格中,我通過一個例子講述了,物件導向中,類,類的執行個體化,構造方法,方法重載,類的屬性,封裝和繼承,這些概念的代碼實現。首先我們再次瞭解這些名詞的相關知識。

 

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

 

    構造方法:就是對類進行初始化。如果不編碼則系統將預設產生空的構造方法。

 

    方法重載:提供了建立同名的多個方法的能力,但是這些方法需要有不同的參數類型。他可以在不改變原方法的基礎上增加新功能。

 

    屬性:適合於以欄位的方式使用方法調用的場合,這裡欄位是儲存類要滿足其設計所需要的資料。

 

    封裝:每個對象都包含他能進行操作的所有資訊。封裝可以減少耦合,類的內部可以修改,可以使類具有清晰的對外介面。

 

    繼承:如果子類繼承父類,第一子類擁有父類非private的屬性和功能;第二,子類具有自己的屬性和功能,即子類可以擴充父類沒有的屬性和功能,還可以以自己的方式實現父類的功能(方法重寫)。

  

    下邊我們看這個例子來對上邊的知識點進行深一步理解:

 

 

namespace WindowsFormsApplication3{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)//單擊貓叫按鈕的事件方法        {            Cat cat = new Cat("咪咪"); //類的執行個體化            cat.ShoutNum1 = 7;             MessageBox.Show(cat.shout());        }        private void button2_Click(object sender, EventArgs e) //單擊狗叫的按鈕的事件方法        {            Dog dog = new Dog("旺財");//這裡只是簡單的調用方法,即可實現目的,體現了封裝的特性            dog.ShoutNum1 = 6;            MessageBox.Show(dog.shout());        }                 }    class Animal//聲明一個父類         {        protected string name = "";//聲明類的的私人字串變數name               public Animal(string name)//定義cat類的構造方法,參數是輸入一個字串        {            this.name = name;//將參數賦值給私人變數        }        public Animal()//將構造方法重載        {              this.name = "無名";        }        protected int shoutNum1 = 3;//聲明一個內部字元段,預設值3,        public int ShoutNum1//屬性的設定        {            get//get表示外界調用屬性的值            {                return shoutNum1;            }            set//set表示外界可以給屬性的賦值            {                shoutNum1= value;            }        }    }        class Cat : Animal//子類貓,使用了繼承的機制,繼承了Animal父類        {            public Cat(): base()            { }            public Cat(string name)                : base(name)            { }            public string shout()            {                string result = "";                for (int i = 0; i < shoutNum1; i++)                {                    result += "喵";                }                return "我的名字叫" + name + " " + result;            }                }        class Dog : Animal//子類狗,繼承父類Animal        {            public Dog()                : base()            { }            public Dog(string name)                : base(name)            { }            public string shout()            {                string result = "";                for (int i = 0; i < shoutNum1; i++)                {                    result += "汪";                }                return "我的名字叫" + name + " " + result;            }        }       }

 

    

      看裡邊的注釋即非常清楚,下邊我們看看輸出的結果:

 

 

 

      這是一個非常簡單的例子,但是對於我們初學者,來理解物件導向的一些概念,還有這些概念如何?還是非常有協助的。這些都是基礎基礎的東西,尤其是學習下一階段大話設計的必備知識!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.