C#语言之数据类型.ppt
《C#语言之数据类型.ppt》由会员分享,可在线阅读,更多相关《C#语言之数据类型.ppt(66页珍藏版)》请在三一办公上搜索。
1、第二讲 C#语言之数据类型之二,3.1 值类型3.2 引用类型3.3 类型转换,第3章 C#语言之数据类型,3.2.1类3.2.2接口3.2.3代表3.2.4数组,3.1 C#数据类型之引用类型,类,1、类的定义:类是一组具有相同数据结构和相同操作的对象的集合。简单地说:类是对一系列具有相同性质的对象的抽象。,3.2.1类,3.2 C#数据类型之引用类型,2、举例:现实中的类,车、人,抽象的概念和继承的概念,特性、方法、事件等概念简介。,类,3.2.1类,3、C中的类:类也是一种数据类型,或称它为类类型。,3.2 C#数据类型之引用类型,4、类的构成:类由成员构成,这些成员包括:常数字段方法属
2、性事件索引器运算符实例构造函数析构函数静态构造函数和嵌套类型声明,类,3.2.1类,5、类的声明:书上的例子(p3_6),3.2 C#数据类型之引用类型,public class Contactpublic string m_name;public int m_age;public string m_telephone;public struct Addresspublic string m_city;public string m_street;public int m_number;public Address m_address;,类,3.2.1类,3.2 C#数据类型之引用类型,cla
3、ss Contactpublic string m_name;public int m_age;public string m_telephone;public struct Addresspublic string m_city;public string m_street;public int m_number;public Address m_address;,6、类变量及实例化,Contact c1=new Contact();,类,3.2.1类,7、类的成员赋值,3.2 C#数据类型之引用类型,class Contactpublic string m_name;public int
4、m_age;public string m_telephone;public struct Addresspublic string m_city;public string m_street;public int m_number;public Address m_address;,class ClassSample public static void Main()Contact c1=new Contact();c1.m_name=Mike Owen;c1.m_age=24;c1.m_telephone=Unknown;c1.m_address.m_city=利物浦;c1.m_addre
5、ss.m_street=安菲尔德;c1.m_address.m_number=10;Console.WriteLine(c1.m_address.m_city);Console.WriteLine(c1.m_address.m_street);Console.WriteLine(c1.m_address.m_number);,类,3.2.1类,8、类继承的声明,3.2 C#数据类型之引用类型,class Contactpublic string m_name;public int m_age;public string m_telephone;public struct Addresspubl
6、ic string m_city;public string m_street;public int m_number;public Address m_address;,class Colleague:Contactpublic string m_Fax;,总结一下:类的继承如何定义,类,3.2.1类,8、类继承的单继承,3.2 C#数据类型之引用类型,class Contact.class Contact1.,class Colleague:Contact,Contact1public string m_Fax;,错啦?,接口,面向组件的开发-组件编程技术,3.2.2接口,3.2 C#数据
7、类型之引用类型,接口,接口,面向组件的开发-组件编程技术,接口,组件与接口:1、接口描述了组件对外提供的服务。2、在组件和组件之间、组件和客户之间都是通过接口进行交互的。,接口,接口的特点:1、组件接口必须是能够自我描述的。这意味着组件接口应该不依赖于具体的实现,将实现和接口分离,彻底消除了接口的使用者和接口的实现者之间的耦合关系,增强了信息的封装程度。同时,这也要求组件接口必须使用一种与组件实现无关的语言。目前组件接口的描述标准是IDL语言。2、尽可能地保持接口不变。由于接口是组件之间的协议,因此组件的接口一旦被发布,组件生产者就应该尽可能地保持接口不变,任何对接口语法或语义上的改变,都有可
8、能造成现有组件与客户之间的联系遭到破坏。3、每个组件都是自主的,有其独特的功能,只能通过接口与外界通信。当一个组件需要提供新的服务时,可以通过增加新的接口来实现,不会影响原接口已存在的客户,而新的客户可以重新选择新的接口来获得服务。,接口,接口的声明:interfaceinterface IControlvoid Paint();,using System;interface IControlvoid Paint();interface ITextBox:IControlvoid SetText(string text);interface IListBox:IControlvoid SetI
9、tems(string items);interface IComboBox:ITextBox,IListBox,总结一下:接口如何定义,接口也有继承?接口的继承如何定义,接口,类继承与接口:,interface ITelephone void DialNumber();interface IFax:ITelephone void SendFax();void ReceiveFax();class Contact:ITelephone.class Colleague:Contact,IFax.,谁来总结一下?,接口,类继承与接口:总结:一个正例,class Contact:ITelephone
10、 public void DialNumber().class Colleague:Contact,IFax public void SendFax().public void ReceiveFax().,interface ITelephone void DialNumber();interface IFax:ITelephone void SendFax();void ReceiveFax();,总结!一个正例,代表,1、定义2、为什么引入代表。3、继续保留指针(细致入微的考虑)4、类型安全的代表5、代表相当于一类方法(函数)的指针6、代表的使用:一般步骤及例子分析7、代表的使用步骤进一步
11、的分析8、代表与事件9、真正的例子,代表,1、代表(delegate),也有的书将它翻译成委托,也有的翻译成代理,它才是C#新引进的新概念之一,也是最有特色的最为强大的功能之一。,2、C#引入代表(delegate)就是为了解决C和C+中指针滥用所带来的危害。可以这样说,一个地道的C#程序员,完全可以不用指针就能完成C和C+中使用指针所能完成的任务。,3、当然,若您恋恋不舍指针,甚至没有指针时就不知如何编程,没有关系,C#还是还会忘记您的。,代表,4、与指针不同,代表在C#是类型安全的:强类型,5、代表:与C、C+相比,代表相当于一类方法(函数)的指针,但仍有很大的差别。,C语言中,指向函数的
12、指针:main()int max(int,int);int(*p)();int a=6,b=7,c=0;p=max;c=(*p)(a,b),代表:相当于一类方法的指针的类型,代表,6、代表的使用分为三个步骤:定义实例化调用,代表,6、代表的使用分为三个步骤:定义、实例化、调用,代表的定义:public delegate int D1(string text);public delegate void D2();,C语言中,指向函数的指针:main()int max(int,int);int(*p)();int a=6,b=7,c=0;p=max;c=(*p)(a,b);,仔细注意:它有参数表。
13、,代表,6、代表的使用分为三个步骤:定义、实例化、调用,代表的定义:public delegate int Delgate1(string text);public delegate void Delgate2();,仔细注意:它有参数表。,语义是什么?,代表,6、代表的使用分为三个步骤:定义、实例化、调用,代表的定义:public delegate int Delgate1(string text);public delegate void Delgate2();,仔细注意:它有参数表。,代表的实例化:Delgate1 d1=new Delgate1(ClassA.DialNumber);D
14、elgate2 d2=new Delgate2(ClassB.M1);,呀?代表的实例化?有点怪呀!,代表,6、代表的使用分为三个步骤:定义、实例化、调用,代表的定义:public delegate int Delgate1(string text);public delegate void Delgate2();,代表的实例化:Delgate1 d1=new Delgate1(ClassA.DialNumber);Delgate2 d2=new Delgate2(ClassB.M1);,语义:public ClassA()int DialNumber(string str),仔细注意:它有参
15、数表。,仔细注意:它有参数表。,语义是什么?,代表,6、代表的使用分为三个步骤:定义、实例化、调用,代表的定义:public delegate int Delgate1(string text);public delegate void Delgate2();,代表的实例化:Delgate1 d1=new Delgate1(ClassA.DialNumber);Delgate2 d2=new Delgate2(ClassB.M1);,代表的调用:public ClassA()Delgate1 d1=new Delgate1(DialNumber);int x;string s=“abcd”;x
16、=d1(s);,代表的调用,public delegate void TelDelegate();public delegate void FaxDelegate(string Text);public class DelegateSample public static void Main()Contact c1=new Contact();Colleague c2=new Colleague();TelDelegate td=new TelDelegate(c1.DialNumber);td();FaxDelegate fd=new FaxDelegate(c2.SendFax);fd(H
17、ello);fd=new FaxDelegate(c2.ReceiveFax);fd(This is a fax From Shanghai);,class Contact:ITelephone public void DialNumber().class Colleague:Contact,IFax public void SendFax(string text).public void ReceiveFax(string text).,代表,8、代表与事件:事件驱动编程,7、代表的使用分为三个步骤:再思考定义实例化调用,谁来定义:程序员?系统?,public delegate void E
18、ventHandler(object sender,System.EventArgs e);public class Button public event EventHandler Click;public void Reset()Click=null;,事件!,代表,8、代表与事件:事件驱动编程,using System;public class Form1 public Form1()Button1.Click+=new EventHandler(Button1_Click);Button Button1=new Button();void Button1_Click(object se
19、nder,EventArgs e)Console.WriteLine(Button1 was clicked!);public void Disconnect()Button1.Click-=new EventHandler(Button1_Click);,public delegate void EventHandler(object sender,System.EventArgs e);public class Button public event EventHandler Click;public void Reset()Click=null;,代表,9、真正的代表(delegate)
20、例子(实例方法和表态方法的代理),using System;namespace Mydelegate_Sample1 public delegate int MyDelegate();/声明一个代表 public class MyClass public int InstanceMethod()Console.WriteLine(调用实例方法。);return 5;public static int StaticMethod()Console.WriteLine(调用静态方法。);return 0;public class Test static public void Main()MyCla
21、ss p=new MyClass();MyDelegate d=new MyDelegate(p.InstanceMethod);d();/调用非静态方法 d=new MyDelegate(MyClass.StaticMethod);d();/调用静态方法 Console.ReadLine();,代表,10、实验:分析、运行和改进p3_8例子,3.2.4数组,3.2 C#数据类型之值类型,C#中的数组,希望大家自学一下,3.2.4数组,3.2 C#数据类型之值类型,自学要点提示:,数组是一种什么数据类型:定义、特点、应用与C、C+、JAVA数组的异同点(申明、初始化、引用等)它的基类、主要属性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 语言 数据类型

链接地址:https://www.31ppt.com/p-6502417.html