C#语言与面向对象的编程基础.ppt
《C#语言与面向对象的编程基础.ppt》由会员分享,可在线阅读,更多相关《C#语言与面向对象的编程基础.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ASP.NET ASP.NET 网络应用程序开发网络应用程序开发计算机科学系 刘彦宾1/16/20231第第2章章C#语言与面向对象的编程基础语言与面向对象的编程基础2.1 C#2.1 C#程序的开程序的开发发2.2 2.2 数据数据类类型型2.3 2.3 运算符运算符 2.4 2.4 控制控制语语句句 2.5 2.5 命名空命名空间间 1/16/20232C#是微是微软软公司公司专门为专门为.NET量身量身订订制的新一代程序制的新一代程序开开发语发语言,它充分吸收了言,它充分吸收了过过去几十年中去几十年中计计算机科学算机科学发发展的展的经验经验教教训训,体,体现现了当前最新程序了当前最新程序
2、设计设计技技术术的功能的功能和精和精华华,从,从C#的身上可以看到的身上可以看到C+、VisualBasic、Dephi、Java等等语语言的很多言的很多优优点。点。C#最突出的特点是:最突出的特点是:现现代、代、简单简单、面向、面向对对象和象和类类型安全。型安全。1/16/20233使用使用C#开开发发基于基于.NET的的应应用程序,具有良好的安用程序,具有良好的安全性和跨平台性。全性和跨平台性。C#用途广泛,可以开用途广泛,可以开发发Windows、ASP.NET、Web服服务务,甚至是,甚至是Windows底底层层的各种不的各种不同同类类型的型的应应用程序。用程序。C#的程序可以通的程序
3、可以通过过XML交交换换数据数据信息。因信息。因为为XML是是纯纯文本的信息,文本的信息,这这就就为为通通过过C#开开发发的的应应用程序的跨平台性能提供了用程序的跨平台性能提供了强强大的保障。大的保障。C#的程的程序运行方式也是独特的,其序运行方式也是独特的,其应应用程序完全在用程序完全在.NET平台平台的管理下运行,的管理下运行,这这就大大地增加了就大大地增加了应应用程序的用程序的稳稳定性定性和安全性。和安全性。1/16/202342.1C#程序的开程序的开发发C#程序的开程序的开发发方式有两种:一种是使用方式有两种:一种是使用VisualStudio.NET提供的集成开提供的集成开发环发环
4、境境IDE进进行开行开发发;另一;另一种方式是使用文本种方式是使用文本编辑编辑器器编编写程序代写程序代码码,然后以,然后以.cs保保存源文件,并用命令行存源文件,并用命令行编辑编辑器(器(csc)进进行行编译编译。1/16/20235简单的欢迎程序usingSystem;namespaceConsoleApplication1classProgramstaticvoidMain(stringargs)Console.WriteLine(欢迎使用欢迎使用Csharp编程!编程!);“Main”方法和语句方法名“Main”作为保留字,是程序的起点。前面的static修饰符表明该方法仅仅在该特定的类
5、中工作,而不是在该类的实例中工作。这是必需的,因为一旦程序启动后,并不存在对象的实例。类 名称空间的声明名称空间的声明 1/16/20236在编写程序时需要注意以下几点:在编写程序时需要注意以下几点:与与C C和和C+C+相同,相同,C#C#对于大小写是敏感的。对于大小写是敏感的。Main()Main()是是程程序序的的入入口口点点,每每个个程程序序都都必必须须含含有有一一个个MainMain()()方法。方法。C#C#用分号作为分隔符来终止每条语句。用分号作为分隔符来终止每条语句。C#C#程程序序可可以以含含有有注注释释。单单行行注注释释使使用用“/”“/”标标注注,注注释释内内容容到到本本
6、行行结结束束为为止止。如如果果需需要要扩扩展展到到多多行行注注释释,将注释内容用将注释内容用“/*”“/*”和和“*/”“*/”括起来即可。括起来即可。1/16/20237usingSystem;namespaceConsoleApplication1classProgramstaticvoidMain(stringargs)Console.Write(Whatisyourname?:);Console.Write(Hello,0!,Console.ReadLine();Console.WriteLine(欢迎使用欢迎使用Csharp编程!编程!);/Write(.)与 WriteLine(.
7、)的区别是:Write(.)语句把信息输出到控制台,之后光标停留在同一行,而WriteLine(.)把信息输出,之后换行。1/16/20238整型布尔型字符型(整型的一种特殊情况)浮点型小数型 简单类型(简单类型(Simple types)结构类型(结构类型(struct types)枚举类型(枚举类型(Enumeration types)2.2 2.2 数据类型数据类型 C#C#语言的数据类型主要分为两类:值类型(语言的数据类型主要分为两类:值类型(Value Value TypeType)和引用类型()和引用类型(Reference TypeReference Type)。其中,值类)。其
8、中,值类型的变量直接存储它的数据内容,而引用类型的变量型的变量直接存储它的数据内容,而引用类型的变量存储的是对实际数据的引用。存储的是对实际数据的引用。C#C#的引用类型包括类类的引用类型包括类类型型(Class Type)(Class Type)、数组类型、数组类型(Array Type)(Array Type)、接口类型、接口类型(Interface Type)(Interface Type)和委托类型和委托类型(Delegate Type)(Delegate Type)。对象类型对象类型类类型类类型接口接口代表元代表元字符串类型字符串类型数组数组 引用类型引用类型值类型值类型1/16/2
9、02392.2.1值类型值类型值类型可以分为简单类型、结构类型和枚举类型。值类型可以分为简单类型、结构类型和枚举类型。1简单类型简单类型简单类型分整数类型、浮点类型、简单类型分整数类型、浮点类型、decimal类型和类型和bool类型。类型。1/16/202310简单类型:整型整型sbyte型为有符号型为有符号8位整数位整数byte型为无符号型为无符号16位整数位整数short型为有符号型为有符号16位整数位整数ushort型为无符号型为无符号16位整数位整数int型为有符号型为有符号32位整数位整数uint型为无符号型为无符号32位整数位整数long型为型为64位有符号整数位有符号整数ulo
10、ng型为型为64位无符号整数位无符号整数char字符型为一个单字符型为一个单Unicode字符,字符,16位长位长注意:在注意:在C中,中,int不再取决于一个机器的字(不再取决于一个机器的字(word)的大小,而的大小,而long被设成被设成64位。位。1/16/202311简单类型:浮点型浮点型float:取值范围在取值范围在1.5x10-453.4x1038之间,之间,精度为精度为7位数。位数。double:取值范围在取值范围在5.0 x10-3241.7x10308之间,之间,精度为精度为1516位位数。数。1/16/202312简单类型:小数型小数型小数型是一种高精度、小数型是一种高
11、精度、128位数据类型,它打算位数据类型,它打算用于金融和货币的计算。用于金融和货币的计算。当定义一个变量并赋值给它时,使用当定义一个变量并赋值给它时,使用m后缀以表后缀以表明它是一个小数型:明它是一个小数型:decimaldecMyValue=1.0m;如果省略了如果省略了m,在变量被赋值之前,它将被编,在变量被赋值之前,它将被编译器认作译器认作double型。型。1/16/202313结构类型结构类型2结构类型结构类型结构类型是一种复合数据类型,用于将多个不同类结构类型是一种复合数据类型,用于将多个不同类型的成员组合为一种新的类型。结构的声明使用型的成员组合为一种新的类型。结构的声明使用s
12、truct关键字。关键字。如下所示:如下所示:1/16/202314structStudent/定义结构类型定义结构类型Studentpublicstringid;publicstringname;publicintage;publicstringclassname;publicstringtelephone;创建结构实例的过程和创建类实例相似,例如:创建结构实例的过程和创建类实例相似,例如:Studentstu=newStudent();对结构的成员的访问使用点运算符。例如:对结构的成员的访问使用点运算符。例如:stu.age=20;1/16/202315在在C#中,结构和类的区别在于结构是
13、一个中,结构和类的区别在于结构是一个值类型,而类是一个引用类型。值类型,而类是一个引用类型。使用结构的主要思想是用于创建小型的对使用结构的主要思想是用于创建小型的对象,可以节省内存,因为没有如类对象象,可以节省内存,因为没有如类对象所需的那样有额外的引用产生。所需的那样有额外的引用产生。1/16/2023161:usingSystem;2:3:structIP4:5:publicbyteb1,b2,b3,b4;6:7:8:classTest9:10:publicstaticvoidMain()11:12:IPmyIP=newIP;13:myIP.b1=192;14:myIP.b2=168;15
14、:myIP.b3=1;16:myIP.b4=101;17:Console.Write(0.1.,myIP.b1,myIP.b2);18:Console.Write(0.1,myIP.b3,myIP.b4);19:1/16/2023173枚举类型枚举类型枚举类型是一组逻辑上密不可分的整数值。枚举的枚举类型是一组逻辑上密不可分的整数值。枚举的声明使用声明使用Enum关键字。例如:关键字。例如:enumWeekday/定义枚举类型定义枚举类型weekdaySunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday在在枚枚举举类类型型中中,第第一一
15、个个枚枚举举数数的的默默认认值值为为0,后后面面每每个个值值依依次次递递增增1。当当然然,也也可可以以使使用用赋赋值值语语句句显显式式地地为枚举中的常量赋值。访问枚举需要使用点运算符。为枚举中的常量赋值。访问枚举需要使用点运算符。1/16/2023182.2.2类类类是面向对象编程的基本构造块,是一种包含数据类是面向对象编程的基本构造块,是一种包含数据成员、函数成员和嵌套类型的数据结构。类的数据成成员、函数成员和嵌套类型的数据结构。类的数据成员有常量、域和事件。函数成员包括方法、属性、操员有常量、域和事件。函数成员包括方法、属性、操作符、构造函数和析构函数。类支持继承机制,通过作符、构造函数和
16、析构函数。类支持继承机制,通过继承、派生可以扩展类的数据成员和函数方法,进而继承、派生可以扩展类的数据成员和函数方法,进而达到代码重用和设计重用的目的。达到代码重用和设计重用的目的。1/16/2023191.类的定义格式为:类的定义格式为:属性属性类修饰符类修饰符class类名类名类体类体其中,类修饰符包括:其中,类修饰符包括:new、abstract、sealed、public、protected、internal、private。类体用于定义。类体用于定义类的成员,类的成员中可以包含数据成员和函数成员。类的成员,类的成员中可以包含数据成员和函数成员。1/16/2023202.创建类的实例创
17、建类的实例在在定定义义了了类类之之后后,就就可可以以通通过过new运运算算符符来来创创建建类类的的实实例例(即即对对象象),类类实实例例就就是是类类类类型型的的变变量量,其其创创建格式为:建格式为:类名类名实例名即变量名实例名即变量名=new类名类名(参数参数);实际上,类的实例的创建中,运算符实际上,类的实例的创建中,运算符new通过调用通过调用类的构造函数完成类的初始化工作。类的构造函数完成类的初始化工作。1/16/2023213.类的成员类的成员类类的的成成员员分分为为两两大大类类,类类本本身身定定义义的的成成员员和和从从基基类类继继承承来来的的成成员员。类类成成员员包包括括函函数数成成
18、员员和和数数据据成成员员。可可以以包包含含可可执执行行代代码码的的成成员员统统称称为为该该类类的的函函数数成成员员,一一个个类类的的函函数数成成员员包包括括:方方法法、属属性性、事事件件、索索引引器器、运运算算符符、实实例例构构造造函函数数、析析构构函函数数和和静静态态构构造造函函数数。数据成员包含类要处理的数据,它包括常数和字段。数据成员包含类要处理的数据,它包括常数和字段。在程序中,对类的成员的访问要使用点运算符在程序中,对类的成员的访问要使用点运算符“.”完成。完成。1/16/202322(1)类成员访问修饰符类成员访问修饰符类成员访问修饰符用于指定类成员的可访问性。类成员访问修饰符用于
19、指定类成员的可访问性。C#共有共有public、private、protected和和internal四个类成员四个类成员访问修饰符。访问修饰符。(2)静态成员与实例成员静态成员与实例成员类的成员要么是静态成员,要么是实例成员。当用类的成员要么是静态成员,要么是实例成员。当用static修饰符定义成员时,得到静态成员,静态成员属修饰符定义成员时,得到静态成员,静态成员属于类,为这个类的所有实例所共享;不用于类,为这个类的所有实例所共享;不用static修饰符修饰符定义的成员,称为实例成员,实例成员属于类的实例。定义的成员,称为实例成员,实例成员属于类的实例。1/16/2023234.构造函数和
20、析构函数构造函数和析构函数构构造造函函数数是是类类的的特特殊殊函函数数成成员员,它它主主要要用用于于为为对对象象分配空间,完成对象的初始化工作。具有以下特点:分配空间,完成对象的初始化工作。具有以下特点:构造函数的名称与类的名称相同。构造函数的名称与类的名称相同。构造函数可以具有参数,但没有返回值。构造函数可以具有参数,但没有返回值。构造函数在对象定义(即创建对象)时自动被调用。构造函数在对象定义(即创建对象)时自动被调用。在在类类中中没没有有定定义义该该类类的的构构造造函函数数时时,则则编编译译系系统统会会自自动动生生成成一一个个默默认认的的构构造造函函数数,该该函函数数是是一一个个不不带带
21、参参数数、函数体为空的函数。函数体为空的函数。构造函数可以重载,但不能继承。构造函数可以重载,但不能继承。构造函数可分为实例函数和静态构造函数。构造函数可分为实例函数和静态构造函数。1/16/202324 析析构构函函数数也也是是类类的的特特殊殊函函数数成成员员,它它的的主主要要作作用用是是释放类的实例,它具有以下特点:释放类的实例,它具有以下特点:析析构构函函数数的的名名字字与与类类名名相相同同,但但其其名名称称前前加加一一“”符号。符号。析构函数不能带参数,也没有返回值。析构函数不能带参数,也没有返回值。当撤消对象时,系统自动调用析构函数。当撤消对象时,系统自动调用析构函数。析构函数不能被
22、继承,也不能被重载。析构函数不能被继承,也不能被重载。1/16/202325 5.5.类的方法类的方法 方方法法是是表表现现类类或或对对象象行行为为的的函函数数成成员员。类类中中方方法法的的声明的格式如下:声明的格式如下:属性集属性集 方法修饰符方法修饰符 返回值类型返回值类型 方法名方法名(形参列表形参列表)方法体方法体 其中,方法的修饰符主要有:其中,方法的修饰符主要有:newnew、publicpublic、protectedprotected、internalinternal、privateprivate、staticstatic、virtualvirtual、sealedsealed
23、、overrideoverride、abstractabstract、externextern。1/16/202326 用用修修饰饰符符staticstatic定定义义方方法法时时,表表示示该该方方法法为为静静态态方法。未用修饰符方法。未用修饰符staticstatic定义的方法为实例方法。定义的方法为实例方法。静静态态方方法法不不对对特特定定实实例例进进行行操操作作,不不与与实实例例相相关关联联,它它属属于于类类,与与类类相相关关联联,所所以以调调用用静静态态方方法法不不需需要要创创建建类类实实例例。要要调调用用类类的的静静态态方方法法,只只需需要要类类名名和和方方法法名名,中中间间加加上上
24、圆圆点点“.”“.”运运算算符符即即可可。静静态态方方法法只只能访问类的静态成员,访问非静态成员是错误的。能访问类的静态成员,访问非静态成员是错误的。实例方法属于类的实例,可对类的某个特定实例实例方法属于类的实例,可对类的某个特定实例进行操作,调用实例方法需要通过类的实例,格式是进行操作,调用实例方法需要通过类的实例,格式是“实例名实例名.方法名方法名”,实例方法可以访问类中的任何成,实例方法可以访问类中的任何成员。员。1/16/2023276.6.字段与属性字段与属性(1)(1)字段字段 字字段段就就是是类类中中声声明明的的一一种种数数据据成成员员,即即与与对对象象或或类类相相关关联联的的变
25、变量量。根根据据在在类类中中定定义义字字段段时时所所用用到到的的修修饰饰符符的的不不同同,可可将将字字段段分分为为:静静态态字字段段、实实例例字字段段、只只读字段。读字段。1/16/202328 静静态态字字段段:用用staticstatic修修饰饰符符声声明明的的字字段段称称为为静静态态字字段,静态字段属于类,而不属于类的实例。段,静态字段属于类,而不属于类的实例。实实例例字字段段:未未用用staticstatic修修饰饰符符声声明明的的字字段段称称为为实实例例字字段段,实实例例字字段段属属于于类类的的实实例例,即即类类的的每每个个实实例例拥拥有有自己的字段。自己的字段。只只读读字字段段:用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 语言 面向 对象 编程 基础
限制150内