第3章-面向对象的C语言解析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第3章-面向对象的C语言解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 语言 解析 课件
- 资源描述:
-
1、 第3章 面向对象的C#语言本章内容n类、域、方法n属性、索引n类的继承n修饰符n接口n结构与枚举n面向对象:继承、封装、多态nUML类图简介3.1 类、域、方法定义类中的域和方法class Person public string name;public int age;public void sayHello()Console.WriteLine(Hello!My name is +name);public string getInfo()return Name:+name+,Age:+age;构造方法 n(1)构造方法的方法名与类名相同。n(2)构造方法没有返回类型,也不能写void。n
2、(3)构造方法的主要作用是完成对象的初始化工作。n(4)构造方法一般不能显式地直接调用,而是用new来调用。缺省构造方法 npublic Person()析构方法 nclass Person nn Person()nnn对象的创建nPerson p=new Person(“Liming”,20);name p age 对象的使用nConsole.WriteLine(p.name);np.sayHello();方法的重载,签名 public void sayHello()Console.WriteLine(Hello!My name is +name);public void sayHello(
3、Person another)Console.WriteLine(Hello,+another.name+!My name is +name);OverloadingTest.cs使用this public Person(int age,string name)this.age=age;this.name=name;public Person():this(0,)/构造方法的其他语句;应用示例:银行系统n系统中有几类对象?Account,Bank,ATMn每个类中有什么域、方法?3.2 属性、索引 使用属性、索引的示例n使用属性 button1.Text nbutton1.Text=“说你好”
4、;n含义相当于button1.SetText(“说你好”);nString s=button1.Text;n含义相当于s=button1.GetText();n使用属性 string s=“abcde”;n求出长度:s.Lengthn含义上相当于s.GetLength();n使用索引 string s=“abcde”;n求出第0个字符:s0n含义上相当于s.Get(0)private string myName;public string Nameget return myName;set myName=value;对属性进行访问 nPerson p=new Person();np.Name=
5、“Li Ming”;nConsole.WriteLine(p.Name);n编译器产生的方法是:nvoid set_Name(string value);nstring get_Name();PersonProperty.cs属性与域的比较 n(1)属性可以实现只读或只写,而域不能。n(2)属性的set方法可以对用户指定的值(value),进行有效性检查,从而保证只有正确的状态才会得到设置,而域不能。n(3)属性的get方法不仅可以返回域变量的值,还可以返回一些经过计算或处理过的数据,如上例中的只读属性Info,它返回的由Name及Age组合过的字符串。n(4)由于属性在实现时,实际上是方法,
6、所以可以具有方法的一些优点,如可以定义抽象属性等等。索引(Indexer)修饰符 类型名 this 参数列表 set get使用索引 n对象名 参数 n编译器自动产生两个方法,以供调用:nT get_Item(P);nvoid set_Item(P,T value);IndexerRecord.cs属性与索引的比较 属属 性性索索 引引通过名称标识通过参数列表进行标识通过简单名称来访问通过运算符来访问可以用static修饰不能用static修饰属性的get访问器没有参数索引的get访问器具有与索引相同的参数列表属性的set访问器包含隐式value参数除了value参数外,索引的set访问器还具
7、有与索引相同的参数列表IndexerBitArray.cs3.3 类的继承 使用继承的示例n我们定义的窗体npublic class Form1:System.Windows.Forms.Form继承(inheritance)n子类subclass、父类baseclassn单继承n所有的类都是通过直接或间接地继承object(即System.Object)得到的。class SubClass:BaseClass 示例class Student :Person/.继承n子类自动地从父类那里继承所有域、方法、属性、索引等成员作为自己的成员。n除了继承父类的成员外,子类还可以添加新的成员,还可以隐藏
8、或修改父类的成员。域的继承、添加与隐藏 class Apublic int a;class B:Anew public int a;方法的继承、添加n方法的继承n方法的添加与父类同名的方法n一是定义同名、但参数列表(签名)与父类不同的方法,这称为对父类方法的重载(OverloadingOverloading)n二是定义同名且参数列表也与父类相同的方法,这称为新增加一种方法,用newnew表示n三是定义同名且参数列表也与父类相同的方法,而且父类的方法用了abstract或virtual进行了修饰,子类的同名方法用了override进行了修饰,这称为虚方法的覆盖(OverridingOverrid
9、ing)。InheritFieldMethod.cs使用base void sayHello()base.sayHello();Console.WriteLine(My school is +school);Student(string name,int age,string school):base(name,age)this.school=school;父类与子类的转换 Person p1=new Person();Person p2=new Student();Student s1=new Student();Student s2=new Student();p1=s1;/可以,因为Pe
展开阅读全文