标签:
1、命名空间 可以认为类是属于命名空间的。 如果在当前项目中没有这个类的命名空间,需要我们手动的导入这个类所在的 命名空间。 1)、用鼠标去点 2)、alt+shift+F10 3)、记住命名空间,手动的去引用
2、在一个项目中引用另一个项目的类 1)、添加引用 2)、引用命名空间
3、值类型和引用类型 区别: 1、值类型和引用类型在内存上存储的地方不一样。 2、在传递值类型和传递引用类型的时候,传递的方式不一样。 值类型我们称之为值传递,引用类型我们称之为引用传递。 我们学的值类型和引用类型: 值类型:int、double、bool、char、decimal、struct、enum 引用类型:string、自定义类、数组 存储: 值类型的值是存储在内存的栈当中。 引用类型的值是存储在内存的堆中。
3、字符串 1)、字符串的不可变性 当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值。
当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁。
2)、我们可以讲字符串看做是char类型的一个只读数组。 ToCharArray();将字符串转换为char数组 new string(char[] chs):能够将char数组转换为字符串
4、字符串提供的各种方法 1)、Length:获得当前字符串中字符的个数 2)、ToUpper():将字符转换成大写形式 3)、ToLower():将字符串转换成小写形式 4)、Equals(lessonTwo,StringComparison.OrdinalIgnoreCase):比较两个字符串,可以忽略大小写 5)、Split():分割字符串,返回字符串类型的数组。 6)、Substring():解决字符串。在截取的时候包含要截取的那个位置。 7)、IndexOf():判断某个字符串在字符串中第一次出现的位置,如果没有返回-1、值类型和引用类型在内存上存储的地方不一样。 8)、LastIndexOf():判断某个字符串在字符串中最后一次出现的位置,如果没有同样返回-1 9)、StartsWith():判断以....开始 10)、EndsWith():判断以...结束 11)、Replace():将字符串中某个字符串替换成一个新的字符串 12)、Contains():判断某个字符串是否包含指定的字符串 13)、Trim():去掉字符串中前后的空格 14)、TrimEnd():去掉字符串中结尾的空格 15)、TrimStart():去掉字符串中前面的空格 16)、string.IsNullOrEmpty():判断一个字符串是否为空或者为null 17)、string.Join():将数组按照指定的字符串连接,返回一个字符串。
5、继承 我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员, 单独的封装到一个类中,作为这些类的父类。 Student、Teacher、Driver 子类 派生类 Person 父类 基类 子类继承了父类,那么子类从父类那里继承过来了什么? 首先,子类继承了父类的属性和方法,但是子类并没有继承父类的私有字段。 问题:子类有没有继承父类的构造函数? 答:子类并没有继承父类的构造函数,但是。子类会默认的调用父类无参数的构造函数, 创建父类对象,让子类可以使用父类中的成员。 所以,如果在父类中重新写了一个有参数的构造函数之后,那个无参数的就被干掉了, 子类就调用不到了,所以子类会报错。 解决办法: 1)、在父类中重新写一个无参数的构造函数。 2)、在子类中显示的调用父类的构造函数,使用关键字:base()
6、继承的特性 1、继承的单根性:一个子类只能有一个父类。 2、继承的传递性
7、查看类图
8、object是所有类的基类。
9、new关键字 1)、创建对象 2)、隐藏从父类那里继承过来的同名成员。 隐藏的后果就是子类调用不到父类的成员。
01复习
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _01复习 8 { 9 public class Person 10 { 11 //字段、属性、方法、构造函数 12 //字段:存储数据 13 //属性:保护字段,对字段的取值和设值进行限定 14 //方法:描述对象的行为 15 //构造函数:初始化对象(给对象的每个属性依次的赋值) 16 //类中的成员,如果不加访问修饰符,默认都是private 17 string _name; 18 /// <summary> 19 /// 属性的本质就是两个方法 20 /// </summary> 21 public string Name 22 { 23 get { return _name; } 24 set { 25 if (value != "孙全") 26 { 27 value = "孙全"; 28 } 29 _name = value; } 30 } 31 32 int _age; 33 public int Age 34 { 35 get { 36 if (_age < 0 || _age > 100) 37 { 38 return _age = 0; 39 } 40 41 return _age; } 42 set { _age = value; } 43 } 44 45 char _gender; 46 public char Gender 47 { 48 get { return _gender; } 49 set { _gender = value; } 50 } 51 //this:当前类的对象 52 //this:调用当前类的构造函数 53 public void SayHello() 54 { 55 string Name = "张三"; 56 Console.WriteLine("{0},{1},{2}",this.Name,this.Age,this.Gender); 57 } 58 59 private static int _id; 60 61 //静态函数只能够访问静态成员 62 public static void SayHelloTwo() 63 { 64 65 Console.WriteLine("Hello 我是静态的"); 66 } 67 68 //构造函数:1、没有返回值 连void也没有 69 //2、构造函数的名称跟类名一样 70 71 public Person(string name,int age,char gender) 72 { 73 this.Name = name; 74 this.Age = age; 75 if (gender != ‘男‘ && gender != ‘女‘) 76 { 77 gender = ‘男‘; 78 } 79 this.Gender = gender; 80 } 81 82 public Person(string name, char gender):this(name,0,gender) 83 { 84 //this.Name = name; 85 //this.Gender = gender; 86 } 87 88 public Person() 89 { 90 91 } 92 93 } 94 }
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _01复习 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Person zsPerson = new Person("张三",-18,‘中‘); 14 zsPerson.SayHello(); 15 Person.SayHelloTwo(); 16 Console.ReadKey(); 17 //new:1、在内存中开辟一块空间 2、在开辟的创建对象 3、调用对象的构造函数 18 } 19 } 20 }
02、命名空间
1 using System; 2 using System.Linq; 3 using System.Text; 4 using System.Collections.Generic; 5 using System.Threading.Tasks; 6 using System.IO; 7 using _01复习; 8 namespace _02_命名空间 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 Person zsPerson = new Person(); 15 zsPerson.Name = "张三"; 16 Console.WriteLine(zsPerson.Name); 17 Console.ReadKey(); 18 19 //A--->ProjectA---顾客类 20 //B--->ProjcetB---顾客类 21 //C-->ProjectC---顾客类 22 } 23 } 24 }
03值类型和引用类型
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _03值类型和引用类型 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 14 } 15 } 16 }
04字符串
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _04字符串 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 int a = 16; 14 int b = 17; 15 //字符串的不可变性 16 //string name = "张三"; 17 //name = "孙全"; 18 //Console.WriteLine(name); 19 //Console.ReadKey(); 20 21 //string s1 = "张三"; 22 //string s2 = "张三"; 23 //Console.ReadKey(); 24 25 //可以讲string类型 看做是char类型的一个只读数组 26 string s = "abcdefg"; 27 s = "bbcdefg"; 28 // s[0] = ‘b‘;不能这样做 因为是只读的 29 //首先将字符串转换为char类型的数组 30 char[] chs = s.ToCharArray(); 31 chs[0] = ‘b‘; 32 //将字符数组转换为我们的字符串 33 s = new string(chs); 34 //既然可以将string看做char类型的只读数组,所以我可以通过下标去访问字符串中的某一个元素 35 Console.WriteLine(s[0]); 36 Console.WriteLine(s); 37 Console.ReadKey(); 38 } 39 } 40 }
05StringBuilder
1 using System; 2 using System.Collections.Generic; 3 using System.Diagnostics; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace _05StringBuilder 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 StringBuilder sb = new StringBuilder(); 15 string str = null; 16 //创建了一个计时器,用来记录程序运行的时间 17 //00:00:00.0422166 18 Stopwatch sw = new Stopwatch(); 19 sw.Start();//开始计时 20 for (int i = 0; i < 100000; i++) 21 { 22 //str += i; 23 sb.Append(i); 24 } 25 sw.Stop();//结束计时 26 Console.WriteLine(sb.ToString()); 27 Console.WriteLine(sw.Elapsed); 28 Console.ReadKey(); 29 30 31 32 33 } 34 } 35 }
06字符串的各种方法
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _06字符串的各种方法 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //练习一:随机输入你心中想到的一个名字,然后输出它的字符串长度 length:可以得字符串的长度 14 //console.writeline("请输入你心中想的那个人的名字"); 15 //string name = console.readline(); 16 //console.writeline("你心中想的人的名字的长度是{0}",name.length); 17 //console.readkey(); 18 19 20 //Console.WriteLine("请输入你喜欢的课程"); 21 //string lessonOne = Console.ReadLine(); 22 ////将字符串转换成大写 23 //// lessonOne = lessonOne.ToUpper(); 24 ////将字符串转换成小写形式 25 //// lessonOne = lessonOne.ToLower(); 26 //Console.WriteLine("请输入你喜欢的课程"); 27 //string lessonTwo = Console.ReadLine(); 28 //// lessonTwo = lessonTwo.ToUpper(); 29 //// lessonTwo = lessonTwo.ToLower(); 30 //if (lessonOne.Equals(lessonTwo,StringComparison.OrdinalIgnoreCase)) 31 //{ 32 // Console.WriteLine("你们俩喜欢的课程相同"); 33 //} 34 //else 35 //{ 36 // Console.WriteLine("你们俩喜欢的课程不同"); 37 //} 38 //Console.ReadKey(); 39 40 41 //string s = "a b dfd _ + = ,,, fdf "; 42 ////分割字符串Split 43 //char[] chs = { ‘ ‘, ‘_‘, ‘+‘, ‘=‘, ‘,‘ }; 44 //string[] str = s.Split(chs, StringSplitOptions.RemoveEmptyEntries); 45 //Console.ReadKey(); 46 47 48 //练习:从日期字符串("2008-08-08")中分析出年、月、日;2008年08月08日。 49 //让用户输入一个日期格式如:2008-01-02,你输出你输入的日期为2008年1月2日 50 51 //string s = "2008-08-08"; 52 ////char[] chs = { ‘-‘ }; 53 //string[] date = s.Split(new char[] { ‘-‘ }, StringSplitOptions.RemoveEmptyEntries); 54 //Console.WriteLine("{0}年{1}月{2}日", date[0], date[1], date[2]); 55 //Console.ReadKey(); 56 //老赵 57 58 //string str = "国家关键人物老赵"; 59 //if (str.Contains("老赵")) 60 //{ 61 // str = str.Replace("老赵", "**"); 62 //} 63 //Console.WriteLine(str); 64 //Console.ReadKey(); 65 66 67 //Substring 截取字符串 68 69 //string str = "今天天气好晴朗,处处好风光"; 70 //str = str.Substring(1,2); 71 //Console.WriteLine(str); 72 //Console.ReadKey(); 73 74 //string str = "今天天气好晴朗,处处好风光"; 75 //if (str.EndsWith("风")) 76 //{ 77 // Console.WriteLine("是的"); 78 //} 79 //else 80 //{ 81 // Console.WriteLine("不是的"); 82 //} 83 //Console.ReadKey(); 84 85 86 //string str = "今天天天气好晴朗,天天处天好风光"; 87 //int index = str.IndexOf(‘哈‘,2); 88 //Console.WriteLine(index); 89 //Console.ReadKey(); 90 91 92 //string str = "今天天气好晴朗,处处好风光"; 93 //int index = str.LastIndexOf(‘天‘); 94 //Console.WriteLine(index); 95 //Console.ReadKey(); 96 97 98 ////LastIndexOf Substring 99 //string path = @"c:\a\b\c苍\d\e苍\f\g\\fd\fd\fdf\d\vfd\苍老师苍.wav"; 100 //int index = path.LastIndexOf("\\"); 101 //path = path.Substring(index + 1); 102 //Console.WriteLine(path); 103 //Console.ReadKey(); 104 105 106 107 //string str = " hahahah "; 108 //str = str.Trim(); 109 // //str = str.TrimStart(); 110 // str = str.TrimEnd(); 111 // Console.Write(str); 112 // Console.ReadKey(); 113 114 //string str = ""; 115 //if (string.IsNullOrEmpty(str)) 116 //{ 117 // Console.WriteLine("是的"); 118 //} 119 //else 120 //{ 121 // Console.WriteLine("不是"); 122 //} 123 string[] names = { "张三", "李四", "王五", "赵六", "田七" }; 124 ////张三|李四|王五|赵六|田七 125 string strNew = string.Join("|", names); 126 Console.WriteLine(strNew); 127 Console.ReadKey(); 128 129 130 131 132 } 133 } 134 }
07字符串的练习
1 using System; 2 using System.Collections.Generic; 3 //using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 using System.IO; 8 9 namespace _07字符串的练习 10 { 11 class Program 12 { 13 static void Main(string[] args) 14 { 15 //课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。"abc"→"cba" 16 17 //string str = "abcdefg";//ggedcba 18 //char[] chs = str.ToCharArray(); 19 //Array.Reverse(chs); 20 //string a = chs[0].ToString();//字符数组转化为string不能用tostring方法 21 //for (int i = 0; i < chs.Length / 2; i++) 22 //{ 23 // char temp = chs[i]; 24 // chs[i] = chs[chs.Length - 1 - i]; 25 // chs[chs.Length - 1 - i] = temp; 26 //} 27 28 //str = new string(chs); 29 //for (int i = 0; i < chs.Length; i++) 30 //{ 31 // Console.WriteLine(chs[i]); 32 //} 33 //Console.WriteLine(str); 34 //Console.ReadKey(); 35 36 37 //倒叙循环 38 //for (int i = str.Length - 1; i >= 0; i--) 39 //{ 40 // Console.Write(str[i]); 41 //} 42 43 //"hello c sharp"→"sharp c hello" 44 //string str = "hello c sharp"; 45 //string[] strNew = str.Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries); 46 //for (int i = 0; i < strNew.Length / 2; i++) 47 //{ 48 // string temp = strNew[i]; 49 // strNew[i] = strNew[strNew.Length - 1 - i]; 50 // strNew[strNew.Length - 1 - i] = temp; 51 //} 52 53 //str = string.Join(" ", strNew); 54 //Console.WriteLine(str); 55 ////string.join:将字符串按照指定的分隔符连接 56 ////Console.WriteLine(strNew);//sharp c hello 57 //// sharp c hello 58 59 //for (int i = 0; i < strNew.Length; i++) 60 //{ 61 // Console.WriteLine(strNew[i]); 62 //} 63 //Console.ReadKey(); 64 65 //string str = "hello c sharp"; 66 //string[] strNew = str.Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries); 67 //Array.Reverse(strNew); 68 //str = string.Join(" ", strNew); 69 //Console.WriteLine(str); 70 //Console.ReadKey(); 71 72 //课上练习3:从Email中提取出用户名和域名:abc@163.com。 73 //string email = "285014478@qq.com"; 74 //int index = email.IndexOf(‘@‘); 75 //string userName = email.Substring(0, index); 76 //string yuMing = email.Substring(index+1); 77 //Console.WriteLine(yuMing); 78 //Console.WriteLine(userName); 79 80 81 //Console.ReadKey(); 82 83 84 85 86 87 88 89 90 91 92 //课上练习4:文本文件中存储了多个文章标题、作者, 93 //标题和作者之间用若干空格(数量不定)隔开,每行一个, 94 //标题有的长有的短,输出到控制台的时候最多标题长度10, 95 //如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。 96 97 98 //string path = @"C:\Users\SpringRain\Desktop\1.txt"; 99 //string[] contents = File.ReadAllLines(path, Encoding.Default); 100 //for (int i = 0; i < contents.Length; i++) 101 //{ 102 // string[] strNew = contents[i].Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries); 103 // Console.WriteLine((strNew[0].Length>10?strNew[0].Substring(0,8)+"......":strNew[0])+"|"+strNew[1]); 104 //} 105 //Console.ReadKey(); 106 107 108 //历史就是这么回事儿|袁腾飞 109 //c#基础之循环结构while、do-while|老赵 110 //AV|苍老师 111 //坏蛋是怎样炼成的怎样炼成的|六道 112 113 114 //让用户输入一句话,找出所有e的位置 115 //string str = "咳嗽、咳嗽 哈哈咳嗽 咳 咳 咳嗽"; 116 //for (int i = 0; i < str.Length; i++) 117 //{ 118 // if (str[i] == ‘e‘) 119 // { 120 // Console.WriteLine(i); 121 // } 122 //} 123 //Console.ReadKey(); 124 125 //string str = "afeeefefofoeefe"; 126 //int index = str.IndexOf("ef"); 127 //Console.WriteLine("第1次出现e的位置是{0}", index); 128 ////循环体:从上一次出现e的位置加1的位置找下一次e出现的位置 129 ////循环条件:index!=-1 130 //int count = 1;//用来记录e出现的次数 131 //while (index != -1) 132 //{ 133 // count++; 134 // index = str.IndexOf("ef", index + 1); 135 // if (index == -1) 136 // { 137 // break; 138 // } 139 // Console.WriteLine("第{0}次出现ef的位置是{1}", count, index); 140 //} 141 //Console.ReadKey(); 142 143 144 145 //用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,如:老牛很邪恶,输出后变成老牛很**; 146 //string str = "老牛很邪恶"; 147 //if (str.Contains("邪恶")) 148 //{ 149 // str = str.Replace("邪恶", "**"); 150 //} 151 //Console.WriteLine(str); 152 //Console.ReadKey(); 153 154 //把{“诸葛亮”,”鸟叔”,”卡卡西”,”卡哇伊”}变成诸葛亮|鸟叔|卡卡西|卡哇伊,然后再把|切割掉 155 string[] names = { "诸葛亮", "鸟叔", "卡卡西", "卡哇伊" }; 156 string str = string.Join("|", names); 157 string[] strNew = str.Split(new char[] { ‘|‘ }, StringSplitOptions.RemoveEmptyEntries); 158 Console.WriteLine(strNew.ToString()); 159 Console.ReadKey(); 160 } 161 } 162 }
08继承
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _08继承 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //Student s = new Student(); 14 15 //Driver d = new Driver(); 16 Student s = new Student("学生", 18, ‘男‘, 101); 17 } 18 } 19 20 public class Person 21 { 22 private string _name; 23 24 public string Name 25 { 26 get { return _name; } 27 set { _name = value; } 28 } 29 30 private int _age; 31 32 public int Age 33 { 34 get { return _age; } 35 set { _age = value; } 36 } 37 38 private char _gender; 39 40 public char Gender 41 { 42 get { return _gender; } 43 set { _gender = value; } 44 } 45 46 public void CHLSS() 47 { 48 Console.WriteLine("吃喝拉撒睡"); 49 } 50 51 52 53 public Person(string name, int age, char gender) 54 { 55 this.Name = name; 56 this.Age = age; 57 this.Gender = gender; 58 } 59 60 //public Person() 61 //{ 62 63 //} 64 65 66 } 67 public class Student : Person 68 { 69 70 public Student(string name, int age, char gender, int id) 71 : base(name, age, gender) 72 { 73 //this.Name = name; 74 //this.Age = age; 75 //this.Gender = gender; 76 this.Id = id; 77 } 78 79 80 private int _id; 81 82 public int Id 83 { 84 get { return _id; } 85 set { _id = value; } 86 } 87 88 89 90 public void Study() 91 { 92 Console.WriteLine("学生会学习"); 93 } 94 } 95 public class Teacher :Person 96 { 97 98 public Teacher(string name, int age, char gender, double salary) 99 : base(name, age, gender) 100 { 101 this.Salary = salary; 102 } 103 104 private double _salary; 105 public double Salary 106 { 107 get { return _salary; } 108 set { _salary = value; } 109 } 110 public void Teach() 111 { 112 Console.WriteLine("老师会讲课"); 113 } 114 } 115 public class Driver:Person 116 { 117 118 public Driver(string name, int age, char gender, int driveTime) 119 : base(name, age, gender) 120 { 121 this.DirveTime = driveTime; 122 } 123 124 125 private int _dirveTime; 126 public int DirveTime 127 { 128 get { return _dirveTime; } 129 set { _dirveTime = value; } 130 } 131 public void Drive() 132 { 133 Console.WriteLine("司机会开车"); 134 } 135 } 136 137 138 139 }
09继承练习
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _09继承练习 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //记者:我是记者 我的爱好是偷拍 我的年龄是34 我是一个男狗仔 14 //司机:我叫舒马赫 我的年龄是43 我是男人 我的驾龄是 23年 15 //程序员:我叫孙全 我的年龄是23 我是男生 我的工作年限是 3年 16 17 Reporter rep = new Reporter("狗仔", 34, ‘男‘, "偷拍"); 18 19 rep.ReporterSayHello(); 20 21 22 Programmer pro = new Programmer("程序猿", 23, ‘男‘, 3); 23 pro.ProgrammerSayHello(); 24 25 Console.ReadKey(); 26 27 28 29 } 30 } 31 32 public class Person 33 { 34 private string _name; 35 public string Name 36 { 37 get { return _name; } 38 set { _name = value; } 39 } 40 private int _age; 41 public int Age 42 { 43 get { return _age; } 44 set { _age = value; } 45 } 46 private char _gender; 47 public char Gender 48 { 49 get { return _gender; } 50 set { _gender = value; } 51 } 52 53 54 public Person(string name, int age, char gender) 55 { 56 this.Name = name; 57 this.Age = age; 58 this.Gender = gender; 59 } 60 } 61 62 63 public class Reporter : Person 64 { 65 public Reporter(string name, int age, char gender, string hobby) 66 : base(name, age, gender) 67 { 68 this.Hobby = hobby; 69 } 70 71 72 private string _hobby; 73 74 public string Hobby 75 { 76 get { return _hobby; } 77 set { _hobby = value; } 78 } 79 80 public void ReporterSayHello() 81 { 82 Console.WriteLine("我叫{0},我是一名狗仔,我的爱好是{1},我是{2}生,我今年{3}岁了",this.Name,this.Hobby,this.Gender,this.Age); 83 } 84 } 85 86 87 public class Programmer : Person 88 { 89 private int _workYear; 90 91 public int WorkYear 92 { 93 get { return _workYear; } 94 set { _workYear = value; } 95 } 96 97 public void ProgrammerSayHello() 98 { 99 Console.WriteLine("我叫{0},我是一名程序猿,我是{1}生,我今年{2}岁了,我的工作年限是{3}年",this.Name,this.Gender,this.Age,this.WorkYear); 100 } 101 102 103 public Programmer(string name, int age, char gender, int workYear) 104 : base(name, age, gender) 105 { 106 this.WorkYear = workYear; 107 } 108 } 109 110 }
10关键字 new
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _10关键字_new 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Reporter rep = new Reporter("记者", 11, ‘男‘, "偷拍"); 14 rep.SayHello(); 15 rep.Test(); 16 Console.ReadKey(); 17 } 18 } 19 20 public class Person 21 { 22 private string _name; 23 public string Name 24 { 25 get { return _name; } 26 set { _name = value; } 27 } 28 private int _age; 29 public int Age 30 { 31 get { return _age; } 32 set { _age = value; } 33 } 34 private char _gender; 35 public char Gender 36 { 37 get { return _gender; } 38 set { _gender = value; } 39 } 40 41 42 public Person(string name, int age, char gender) 43 { 44 this.Name = name; 45 this.Age = age; 46 this.Gender = gender; 47 } 48 49 public void Test() 50 { 51 Console.WriteLine("测试"); 52 } 53 54 public void SayHello() 55 { 56 Console.WriteLine("大家好,我是人类"); 57 } 58 } 59 60 61 public class Reporter : Person 62 { 63 public Reporter(string name, int age, char gender, string hobby) 64 : base(name, age, gender) 65 { 66 this.Hobby = hobby; 67 } 68 69 70 private string _hobby; 71 72 public string Hobby 73 { 74 get { return _hobby; } 75 set { _hobby = value; } 76 } 77 78 public void ReporterSayHello() 79 { 80 Console.WriteLine("我叫{0},我是一名狗仔,我的爱好是{1},我是{2}生,我今年{3}岁了", this.Name, this.Hobby, this.Gender, this.Age); 81 } 82 83 84 public new void SayHello() 85 { 86 Console.WriteLine("大家好,我是记者"); 87 } 88 } 89 90 91 public class Programmer : Person 92 { 93 private int _workYear; 94 95 public int WorkYear 96 { 97 get { return _workYear; } 98 set { _workYear = value; } 99 } 100 101 public void ProgrammerSayHello() 102 { 103 Console.WriteLine("我叫{0},我是一名程序猿,我是{1}生,我今年{2}岁了,我的工作年限是{3}年", this.Name, this.Gender, this.Age, this.WorkYear); 104 } 105 106 107 public Programmer(string name, int age, char gender, int workYear) 108 : base(name, age, gender) 109 { 110 this.WorkYear = workYear; 111 } 112 113 114 public new void SayHello() 115 { 116 Console.WriteLine("大家好,我是程序员"); 117 } 118 } 119 }
标签:
原文地址:http://www.cnblogs.com/liuslayer/p/4713413.html