/* * 例程编号:CP08_10 * 摘要: * 多态-虚方法 * 说明: * 1)继承含有虚方法的类,可以对虚方法进行重写,也可以不重写 * 2)子类需要对父类方法进行重写,父类该方法要么是虚方法,要么是抽象方法 * 3)虚方法与抽象方法的区别: * 虚方法: 必须有方法体 可以在普通类中定义,也可在抽象类中 子类可重写父类虚方法,也可不重写 * 抽象方法: 必须没方法体 必须在抽象类中定义 子类必须父类的抽象方法重写 * 步骤: * 1)class Person * 属性:StuName * 方法:ShowInfo() * 虚方法:virtual Eat() * 2)class Student : Person * 属性:StuName,StrGrade * 方法:new ShowInfo() * override Eat() */ public static void CP08_10() { Person_10 p1 = new Person_10("Jaco"); p1.ShowInfo(); p1.Eat(); CP00Forms.Forms.Cut(); Student_10 s1 = new Student_10("Lucy", "H1"); s1.ShowInfo(); s1.Eat(); }
/* * 例程编号:CP02_21 * 摘要: * 集合的例程 * 说明: * 1)数组和可变数组的区别 * 数组:只能放单一类型数据,长度固定 * 可变数组:能放多种类型数据,长度可变 * 2)创建可变数组 ArrayList arrList = new ArrayList(); * 需要在文件头加入using System.Collections; * 3)添加数据 ArrayList.Add(Int/Char/String/Int[]/Class...); * 4)添加数组 ArrayList.AddRange(new int[]{Int...}); * ArrayList.Add(int[])和ArrayList.AddRange(int[])的区别 * ArrayList.Add(int[])是把数组的地址添加到集合中 * ArrayList.AddRange(int[])是把数组中的元素按顺序添加到集合中 * 5)删除指定内容数据 ArrayList.Remove(String); * 6)删除指定下标数据 ArrayList.RemoveAt(0); * 7)删除下标范围数据 ArrayList.RemoveRange(0,3); * 8)清空集合 ArrayList.Clear(); * 9)升序排列 ArrayList.sort(); * 无法对含有引用类型数据(包括Array和Classes)的可变数组进行排序 * 无法对含有不同类型数据的可变数组进行排序 * 10)顺序逆转 ArrayList.Reverse(); * 11)指定下标插入数据 ArrayList.Insert(0,String); * 插入后,原数据及后面数据的位置往后推一位 * 12)指定下标插入数组 ArrayList.InsertRange(0, new int[] { Int...}); * ArrayList.Insert(2, iArr)ArrayList.InsertRange(3, iArr_1)的区别: * Insert()是把数组地址插入到指定下标位置 * InsertRange()是把数组中的元素内容都按顺序插入到指定下标位置 * 13)指定下标插入可变数组 ArrayList.InsertRange(0, new new ArrayList[]); * Insert()是把集合的地址插入到指定的下标位置 * InsertRange()是把集合中的元素内容都按顺序插入到指定下标位置 * 14)判断指定下标是否包含一个元素 ArrayList.Contains(String); * 15)如果数据是引用类型,如数组名或对象名,可以用is判断后,再处理 * 16)???ArrayList.ToString(),输出的是什么??? * 步骤: * 1)创建一个集合,插入各种数据 * 2)int/double/decimal/string/char/bool/iArray/Person */ /// <summary> /// 可变数组的例程 /// </summary> public static void CP02_21() { //创建可变数组 ArrayList arrList = new ArrayList(); ArrayList arrList_1 = new ArrayList(); //定义各种数据 int iVar = 1; double dVar = 3.14; decimal dmlVar = 80000m; string strVar = "Hello"; char chVar = 'r'; bool bFlag = true; int[] iArr = { 1, 2, 3 }; int[] iArr_1 = { 4, 5, 6 }; int[] iArr_2 = { 7, 8, 9 }; Person_10 clsP = new Person_10(); //添加数据 ArrayList.Add() arrList.Add(iVar); arrList.Add(dVar); arrList.Add(dmlVar); arrList.Add(strVar); arrList.Add(chVar); arrList.Add(bFlag); arrList.Add(iArr); arrList.Add(clsP); //循环打印可变数组的值 PrintArrList(arrList); CP00Forms.Forms.Cut(); //添加数组 ArrayList.AddRange(new int[] { Int...}); //ArrayList.Add(int[])和ArrayList.AddRange(int[])的区别 //ArrayList.Add(int[])是把数组的地址添加到集合中 //ArrayList.AddRange(int[])是把数组中的元素按顺序添加到可变数组中 Console.WriteLine("添加数组元素到集合中..."); arrList_1.AddRange(new string[] { "x", "xx", "xxx", "xxxx", "xxxxx" }); PrintArrList(arrList_1); CP00Forms.Forms.Cut(); //删除指定内容数据 ArrayList.Remove(String); Console.WriteLine("删除3.14..."); arrList.Remove(3.14); PrintArrList(arrList); CP00Forms.Forms.Cut(); //删除指定下标数据 ArrayList.RemoveAt(0); Console.WriteLine("删除下标为1的元素..."); arrList.RemoveAt(1); PrintArrList(arrList); CP00Forms.Forms.Cut(); //删除下标范围数据 ArrayList.RemoveRange(0, 3); Console.WriteLine("删除范围为1-2的数据..."); arrList.RemoveRange(1, 2); PrintArrList(arrList); CP00Forms.Forms.Cut(); //清空集合 ArrayList.Clear(); Console.WriteLine("清空集合的数据的数据..."); arrList.Clear(); PrintArrList(arrList); CP00Forms.Forms.Cut(); //升序排列 ArrayList.sort(); //如果可变数组中的数据不兼容,无法做升序排列 //先在可变数组中添加Int数据:4,2,7,1,6 //再进行升序排列 Console.WriteLine("重新对集合添加新元素..."); arrList.Add(4); arrList.Add(2); arrList.Add(7); arrList.Add(1); arrList.Add(6); PrintArrList(arrList); Console.WriteLine("开始执行升序排序..."); arrList.Sort(); PrintArrList(arrList); CP00Forms.Forms.Cut(); //再清空,添加String数据 arrList.Clear(); Console.WriteLine("清空数据,并添加String数据..."); arrList.Add("Nice"); arrList.Add("to"); arrList.Add("meet"); arrList.Add("you"); arrList.Add("baby"); PrintArrList(arrList); Console.WriteLine("开始执行升序排序..."); arrList.Sort(); PrintArrList(arrList); CP00Forms.Forms.Cut(); //再清空,添加Person数据 //arrList.Clear(); //Console.WriteLine("清空数据,并添加Person数据..."); //arrList.Add(new Person_10()); //arrList.Add(new Person_10_1()); //arrList.Add(new Person_10_2()); //PrintArrList(arrList); //Console.WriteLine("开始执行升序排序..."); //arrList.Sort(); //PrintArrList(arrList); //无法对Person数据进行升序排序 //再清空,添加Array数据 //arrList.Clear(); //Console.WriteLine("清空数据,并添加Array数据..."); //arrList.Add(iArr); //arrList.Add(iArr_1); //arrList.Add(iArr_2); //PrintArrList(arrList); //Console.WriteLine("开始执行升序排序..."); //arrList.Sort(); //PrintArrList(arrList); //无法对Array数据进行升序排序 //再清空,添加各类型数据数据(除了引用类型数据) //arrList.Clear(); //Console.WriteLine("清空数据,并添加各类型数据(除了引用类型数据)..."); //arrList.Add(iVar); //arrList.Add(chVar); //arrList.Add(dmlVar); //PrintArrList(arrList); //Console.WriteLine("开始执行升序排序..."); //arrList.Sort(); //PrintArrList(arrList); //无法对不同类型的数据进行升序排序 //顺序逆转 ArrayList.Reverse(); Console.WriteLine("开始执行顺序逆转..."); arrList.Reverse(); PrintArrList(arrList); CP00Forms.Forms.Cut(); //指定下标插入数据 ArrayList.Inser(0, String); //插入后,原数据及后面数据的位置往后推一位 Console.WriteLine("在下标2插入一个字符串“good”..."); arrList.Insert(2, "good"); PrintArrList(arrList); CP00Forms.Forms.Cut(); //指定下标插入数组 ArrayList.InserRange(0, new int[] { Int...}); //ArrayList.Insert(2, iArr)ArrayList.InsertRange(3, iArr_1)的区别: //Insert()是把数组地址插入到指定下标位置 //InsetRange()是把数组里面的元素内容都按顺序插入到指定下标位置 Console.WriteLine("在下标2处,用ArrayList.Insert()插入一个数组..."); arrList.Insert(3, iArr); PrintArrList(arrList); Console.WriteLine("在下标3处,用ArrayList.InsertRange()插入一个数组..."); arrList.InsertRange(4, iArr_1); PrintArrList(arrList); CP00Forms.Forms.Cut(); //指定下标插入集合 ArrayList.InserRange(0, new ArrayList[]); Console.WriteLine("在下标1处,用ArrayList.Insert()插入一个集合..."); arrList.Insert(1, arrList_1); PrintArrList(arrList); Console.WriteLine("在下标2处,用ArrayList.InsertRange()插入一个集合..."); arrList.InsertRange(2, arrList_1); PrintArrList(arrList); CP00Forms.Forms.Cut(); //判断是否包含一个指定元素 ArrayList.Contains(String); Console.WriteLine("判断集合中是否包含“good”的字符串..."); if (arrList.Contains("good")) { Console.WriteLine("字符串“good”存在于集合中。"); } else { Console.WriteLine("集合中未能找到“good”字符串,在末尾加入good字符串。"); } PrintArrList(arrList); CP00Forms.Forms.Cut(); //ArrayList.ToString(),输出的是什么??? Console.WriteLine("ToString()...\n" + arrList.ToString()); }