Example #1
0
        static void Main(string[] args)
        {
            //A1就是類別名稱,Happy就是類別的方法
            //就像是我們裝好電腦之後,就可以做開機的動作,new就是裝好這台電腦
            A1 _PC = new A1();
            //然後我們就是做開機動作,
            string _Happy = _PC.Happy();


            //-----------------------------------------------

            A2 _PC2 = new A2("龍魂GE60"); //可以在裝好電腦時,為他取名,這樣大家才會知道是哪台,當然建構式可以多個

            string _strPC2 = _PC2.Happy();

            //A3 方法重載
            A2     _PC3    = new A2();
            string _strPC3 = _PC3.Happy("自爽");

            //--------------------------------------------------

            //A4 屬性與修飾子
            A4 _PC4 = new A4();

            _PC4.ReStartNum = 5;
            Console.WriteLine(_PC4.ReStart());


            //A5 封裝,剛才都是在使用封裝的
            //假設現在A5是NB,他也一樣會有ReStart
            A5 _NB = new A5();

            _NB.ReStartNum = 5;
            Console.WriteLine(_NB.ReStart());


            //A9 介面
            //抽象類別可以給初一些成員的實現,抽象類別的抽象成員可被子類別部分實現
            //介面的成員需要實現類別完全實現,一個類別只能繼承一個抽象類別,但可以實現多個介面等
            //第一類別是對物件的抽象;抽象類別是對類別的抽象;介面是對行為的抽象
            //第二如果行為跨越不同類別的物件,可使用介面;對於一些相似的類別物件,用繼承抽象類別
            //舉例 貓 狗都是動物,所以它們去繼承動物這抽象類別
            //但悟空和超人都會飛,但是悟空會變身,神話的悟空也會變身,所以此時可以用介面來完成
            //第三,抽象類別是從子類別中發現了公共的東西,泛化出父類別,然後子類別繼承父類別
            //,而介面是根本不知子類別的存在,方法如何實現還不確認,預先定義
            //例如在寫程式時候,是先寫了貓類別後,在寫出狗類別,最後發現有相同類似的,就泛化出動物類別,
            //不可能只有貓類別時候就想到動物類別
            //而介面是一同思考,定義一些項目,但不知道會有什麼動物,要如何實現,能做的就是是先定義這些比賽項目的行為介面
            //抽象類別是自底而上抽象類別的,而介面則是自頂而下設定的
            //(從狗貓衍伸出動物)(從項目延伸出不知那些動物會來參加預先定義好項目)

            A9_Interface _A9 = new A9_Interface("測試介面");

            IA9_Interface _A9_2 = new A9_Interface("測試介面2");

            Console.WriteLine(_A9.ChangeThing("第一個"));
            Console.WriteLine(_A9_2.ChangeThing("第二個"));

            //A10 泛型
            IList <Animal> arrayAnimal = new List <Animal>();

            arrayAnimal.Add(new Cat_Extend("tt"));
            arrayAnimal.Add(new Dog_Extend("tt2"));
            arrayAnimal.Add(new Cat_Extend("tt3"));
            Console.WriteLine(arrayAnimal.Count.ToString());

            //A11 泛型

            cat_deleget   _cat = new cat_deleget("T");
            mouse_deleget _mo1 = new mouse_deleget("Ja");
            mouse_deleget _mo2 = new mouse_deleget("Jb");

            //表示將Mouse的Run方法透過實體化委託給CatShoutEventHandler登記到Cat的事件CatShout當中,+=是為了加進去add_CatShout的意思
            _cat.CatShout += new cat_deleget.CatShoutEventHandler(_mo1.Run);
            _cat.CatShout += new cat_deleget.CatShoutEventHandler(_mo2.Run);
            _cat.Shout();

            cat_deleget2   _cat2 = new cat_deleget2("T");
            mouse_deleget2 _mo21 = new mouse_deleget2("Ja");
            mouse_deleget2 _mo22 = new mouse_deleget2("Jb");

            _cat2.CatShout += new cat_deleget2.CatShoutEventHandler(_mo21.Run);
            _cat2.CatShout += new cat_deleget2.CatShoutEventHandler(_mo22.Run);
            _cat2.Shout();



            //A12-yieldreturn
            yieldreturn _yield     = new yieldreturn();
            var         _return    = _yield.returnACD();
            string      _strreturn = "";

            foreach (var item in _return)
            {
                _strreturn += item;
            }
            Console.WriteLine(_strreturn);

            Console.Read();
        }
Example #2
0
        static void Main(string[] args)
        {
            //A1就是類別名稱,Happy就是類別的方法
            //就像是我們裝好電腦之後,就可以做開機的動作,new就是裝好這台電腦
            A1 _PC = new A1();
            //然後我們就是做開機動作,
            string _Happy=_PC.Happy();

            //-----------------------------------------------

            A2 _PC2 = new A2("龍魂GE60"); //可以在裝好電腦時,為他取名,這樣大家才會知道是哪台,當然建構式可以多個

            string _strPC2 = _PC2.Happy();

            //A3 方法重載
            A2 _PC3 = new A2();
            string _strPC3 = _PC3.Happy("自爽");

            //--------------------------------------------------

            //A4 屬性與修飾子
            A4 _PC4 = new A4();
            _PC4.ReStartNum = 5;
            Console.WriteLine(_PC4.ReStart());

            //A5 封裝,剛才都是在使用封裝的
            //假設現在A5是NB,他也一樣會有ReStart
            A5 _NB = new A5();
            _NB.ReStartNum = 5;
            Console.WriteLine(_NB.ReStart());

            //A9 介面
            //抽象類別可以給初一些成員的實現,抽象類別的抽象成員可被子類別部分實現
            //介面的成員需要實現類別完全實現,一個類別只能繼承一個抽象類別,但可以實現多個介面等
            //第一類別是對物件的抽象;抽象類別是對類別的抽象;介面是對行為的抽象
            //第二如果行為跨越不同類別的物件,可使用介面;對於一些相似的類別物件,用繼承抽象類別
            //舉例 貓 狗都是動物,所以它們去繼承動物這抽象類別
            //但悟空和超人都會飛,但是悟空會變身,神話的悟空也會變身,所以此時可以用介面來完成
            //第三,抽象類別是從子類別中發現了公共的東西,泛化出父類別,然後子類別繼承父類別
            //,而介面是根本不知子類別的存在,方法如何實現還不確認,預先定義
            //例如在寫程式時候,是先寫了貓類別後,在寫出狗類別,最後發現有相同類似的,就泛化出動物類別,
            //不可能只有貓類別時候就想到動物類別
            //而介面是一同思考,定義一些項目,但不知道會有什麼動物,要如何實現,能做的就是是先定義這些比賽項目的行為介面
            //抽象類別是自底而上抽象類別的,而介面則是自頂而下設定的
            //(從狗貓衍伸出動物)(從項目延伸出不知那些動物會來參加預先定義好項目)

            A9_Interface _A9 = new A9_Interface("測試介面");

            IA9_Interface _A9_2 = new A9_Interface("測試介面2");
            Console.WriteLine(_A9.ChangeThing("第一個"));
            Console.WriteLine(_A9_2.ChangeThing("第二個"));

            //A10 泛型
            IList<Animal> arrayAnimal = new List<Animal>();
            arrayAnimal.Add(new Cat_Extend("tt"));
            arrayAnimal.Add(new Dog_Extend("tt2"));
            arrayAnimal.Add(new Cat_Extend("tt3"));
            Console.WriteLine(arrayAnimal.Count.ToString());

            //A11 泛型

            cat_deleget _cat = new cat_deleget("T");
            mouse_deleget _mo1 = new mouse_deleget("Ja");
            mouse_deleget _mo2 = new mouse_deleget("Jb");

            //表示將Mouse的Run方法透過實體化委託給CatShoutEventHandler登記到Cat的事件CatShout當中,+=是為了加進去add_CatShout的意思
            _cat.CatShout += new cat_deleget.CatShoutEventHandler(_mo1.Run);
            _cat.CatShout += new cat_deleget.CatShoutEventHandler(_mo2.Run);
            _cat.Shout();

            cat_deleget2 _cat2 = new cat_deleget2("T");
            mouse_deleget2 _mo21 = new mouse_deleget2("Ja");
            mouse_deleget2 _mo22 = new mouse_deleget2("Jb");
            _cat2.CatShout += new cat_deleget2.CatShoutEventHandler(_mo21.Run);
            _cat2.CatShout += new cat_deleget2.CatShoutEventHandler(_mo22.Run);
            _cat2.Shout();

            //A12-yieldreturn
            yieldreturn _yield = new yieldreturn();
            var _return = _yield.returnACD();
            string _strreturn = "";
            foreach (var item in _return)
            {
                _strreturn += item;
            }
            Console.WriteLine(_strreturn);

            Console.Read();
        }