第3章面向对象的C#语言.ppt
《第3章面向对象的C#语言.ppt》由会员分享,可在线阅读,更多相关《第3章面向对象的C#语言.ppt(68页珍藏版)》请在三一文库上搜索。
1、第3章 面向对象的C#语言,本章内容,类、域、方法 属性、索引 类的继承 修饰符 接口 结构与枚举 面向对象:继承、封装、多态 UML类图简介,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; ,构造方法,(1)构造方法的方法名与类名
2、相同。 (2)构造方法没有返回类型,也不能写void。 (3)构造方法的主要作用是完成对象的初始化工作。 (4)构造方法一般不能显式地直接调用,而是用new来调用。,缺省构造方法,public Person() ,析构方法,class Person Person() ,对象的创建,Person p = new Person(“Liming”, 20 );,对象的使用,Console.WriteLine( p.name ); p.sayHello();,方法的重载,签名,public void sayHello() Console.WriteLine(“Hello! My name is “ +
3、 name ); public void sayHello( 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, “ ) / 构造方法的其他语句 ; ,应用示例:银行系统,系统中有几类对象?Account, Bank, A
4、TM 每个类中有什么域、方法?,3.2 属性、索引,使用属性、索引的示例,使用属性 button1.Text button1.Text = “说你好”; 含义相当于button1.SetText( “说你好”); String s = button1.Text; 含义相当于s = button1.GetText(); 使用属性 string s=“abcde”; 求出长度: s.Length 含义上相当于s.GetLength(); 使用索引 string s=“abcde”; 求出第0个字符: s0 含义上相当于s.Get(0),private string myName; public s
5、tring Name get return myName; set myName = value; ,对属性进行访问,Person p = new Person(); p.Name = “Li Ming”; Console.WriteLine( p.Name ); 编译器产生的方法是: void set_Name( string value ); string get_Name();,PersonProperty.cs,属性与域的比较,(1) 属性可以实现只读或只写,而域不能。 (2) 属性的set方法可以对用户指定的值(value),进行有效性检查,从而保证只有正确的状态才会得到设置,而域不
6、能。 (3) 属性的get方法不仅可以返回域变量的值,还可以返回一些经过计算或处理过的数据,如上例中的只读属性Info,它返回的由Name及Age组合过的字符串。 (4) 由于属性在实现时,实际上是方法,所以可以具有方法的一些优点,如可以定义抽象属性等等。,索引(Indexer),修饰符 类型名 this 参数列表 set get ,使用索引,对象名 参数 编译器自动产生两个方法,以供调用: T get_Item(P); void set_Item(P, T value);,IndexerRecord.cs,属性与索引的比较,IndexerBitArray.cs,3.3 类的继承,使用继承的示
7、例,我们定义的窗体 public class Form1 : System.Windows.Forms.Form,继承(inheritance),子类subclass、父类baseclass 单继承 所有的类都是通过直接或间接地继承object(即System.Object)得到的。,class SubClass : BaseClass ,示例,class Student : Person / ,继承,子类自动地从父类那里继承所有域、方法、属性、索引等成员作为自己的成员。 除了继承父类的成员外,子类还可以添加新的成员,还可以隐藏或修改父类的成员。,域的继承、添加与隐藏,class A publ
8、ic int a; class B : A new public int a; ,方法的继承、添加,方法的继承 方法的添加,与父类同名的方法,一是定义同名、但参数列表(签名)与父类不同的方法,这称为对父类方法的重载(Overloading) 二是定义同名且参数列表也与父类相同的方法,这称为新增加一种方法 ,用new表示 三是定义同名且参数列表也与父类相同的方法,而且父类的方法用了abstract或virtual进行了修饰,子类的同名方法用了override进行了修饰,这称为虚方法的覆盖(Overriding)。,InheritFieldMethod.cs,使用base,void sayHell
9、o() 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; /可以,因为Person类型的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 C# 语言
链接地址:https://www.31doc.com/p-2255081.html