C#物件導向基礎多次重覆練習(method資料傳遞)

再次做練習,個人覺得在物件導向的基礎運用上多多練習對未來運用上會有所幫助,一開始必然覺得頭昏腦脹,可是多次練習與Debug後慢慢習慣其規則與運作模式後,就比較好理解了。
我們在建立的類別class上裡面的method(),其中括號內其實是建立對應類型的變數或字串等等我們需要導入的參數,與C語言函式一樣,建立一個空間讓主程式上的資料內容傳遞過來的,主程式接收方式像下面兩行所示:
【MessageBox.Show(a1.talk(a2.grade, a2.name));】
【MessageBox.Show(a2.answer(a2.tel, a2.grade,a2.name));】

指令 . 行為 ( object物件1 . 類別class1中的method 導出object物件2 . grade參數  ,  導出object物件2 name參數 ) )


然後我們創建object物件是以class類別為架構,由裡面的method()接收,進而運用後再依照編撰的行為進行運作,object物件中的class類別接收方式如下:
【public string talk(int agrade , string aname)】
【public string answer(string phone,int level,string fname)】

宣告並建立與命名method (  創建相對應類型儲存空間「並接收主程式傳遞的物件2 . grade參數」  ,  創建相對應類型儲存空間「並接收主程式傳遞的物件2 name參數 )
簡化上述為:
宣告並建立與命名method (  接收主程式grade參數  ,  接收主程式name參數 )

這次練習在類別Class中,property方面建立2個int、2個string,method方面建立了4個method【intriduce、talk、answer、upgrade】,並在主程式依照自創的class物件的框架之下,建立了兩組資料,最後主程式再運用class類別中的method與傳遞資料後,開始依照程式碼運行。

主程式:
        private void button1_Click(object sender, EventArgs e)
        {
            classmate a1 = new classmate();
            a1.name="Wes";
            a1.id = 1;
            a1.grade = 2;
            a1.tel = "0434528642";

            classmate a2 = new classmate();
            a2.name = "Maggie";
            a2.id = 2;
            a2.grade = 1;
            a2.tel = "0434722402";
         
            MessageBox.Show(a1.introduce());
            MessageBox.Show(a2.introduce());
            MessageBox.Show("~~After 1 year~~");
            a1.upgrade();
            a2.upgrade();
            MessageBox.Show(a1.introduce());
            MessageBox.Show(a2.introduce());

            MessageBox.Show(a1.talk(a2.grade, a2.name));
            MessageBox.Show(a2.answer(a2.tel, a2.grade,a2.name));

創造類別class-程式內容:
    class classmate
    {
        //property
        public int id, grade;
        public string name, tel;

        //method
        public string introduce()
        {
            return "My name is" + "\"" + name + "\"\r\n" + "I studing level " +
                grade + "\"\r\n" + "My class's number is " + id + "\"\r\n" +
                "My phone number is : " + tel;
        }

        public string talk(int agrade , string aname)
        {
            return "Level " + grade + " " + name + " say hello to" + "\r\nLevel " +
                agrade + " " + aname + "\r\nThen "+ aname + " answer " + name + "...";
        }
        public string answer(string phone,int level,string fname)
        {
            return "Hi~~My name is " + fname + ",I studing level " + level +
                ",if you want to talk to me,please call " + phone +
                ",We'll have happy talking!啾咪";
        }
        public void upgrade()
        {
            grade++;
        }
    }
當method不須傳遞與接收資料時,在宣告時用void(空)即可,在這次練習的method運用【upgrade部分】,因為這邊的功能行為只是要將class中的grade+1,每次呼叫就會+1,直到程式結束。

下次練習時,若需求符合,傳遞資料方面可以嘗試將整個object打包傳遞。

留言