第2章C语言与面向对象的编程基础.ppt
《第2章C语言与面向对象的编程基础.ppt》由会员分享,可在线阅读,更多相关《第2章C语言与面向对象的编程基础.ppt(74页珍藏版)》请在三一办公上搜索。
1、ASP.NET 网络应用程序开发,计算机科学系 刘彦宾,2023/8/31,2,第2章 C#语言与面向对象的编程基础,2.1 C#程序的开发2.2 数据类型2.3 运算符 2.4 控制语句 2.5 命名空间,2023/8/31,3,C#是微软公司专门为.NET量身订制的新一代程序开发语言,它充分吸收了过去几十年中计算机科学发展的经验教训,体现了当前最新程序设计技术的功能和精华,从C#的身上可以看到C+、Visual Basic、Dephi、Java等语言的很多优点。C#最突出的特点是:现代、简单、面向对象和类型安全。,2023/8/31,4,使用C#开发基于.NET的应用程序,具有良好的安全性
2、和跨平台性。C#用途广泛,可以开发Windows、ASP.NET、Web服务,甚至是Windows底层的各种不同类型的应用程序。C#的程序可以通过XML交换数据信息。因为XML是纯文本的信息,这就为通过C#开发的应用程序的跨平台性能提供了强大的保障。C#的程序运行方式也是独特的,其应用程序完全在.NET平台的管理下运行,这就大大地增加了应用程序的稳定性和安全性。,2023/8/31,5,2.1 C#程序的开发,C#程序的开发方式有两种:一种是使用Visual Studio.NET提供的集成开发环境IDE进行开发;另一种方式是使用文本编辑器编写程序代码,然后以.cs保存源文件,并用命令行编辑器(
3、csc)进行编译。,2023/8/31,6,简单的欢迎程序,using System;namespace ConsoleApplication1 class Program static void Main(string args)Console.WriteLine(欢迎使用C sharp 编程!);,“Main”方法和语句方法名“Main”作为保留字,是程序的起点。前面的static修饰符表明该方法仅仅在该特定的类中工作,而不是在该类的实例中工作。这是必需的,因为一旦程序启动后,并不存在对象的实例。,类,名称空间的声明,2023/8/31,7,在编写程序时需要注意以下几点:与C和C+相同,C
4、#对于大小写是敏感的。Main()是程序的入口点,每个程序都必须含有一个Main()方法。C#用分号作为分隔符来终止每条语句。C#程序可以含有注释。单行注释使用“/”标注,注释内容到本行结束为止。如果需要扩展到多行注释,将注释内容用“/*”和“*/”括起来即可。,2023/8/31,8,using System;namespace ConsoleApplication1 class Program static void Main(string args)Console.Write(What is your name?:);Console.Write(Hello,0!,Console.Read
5、Line();Console.WriteLine(欢迎使用C sharp 编程!);,/Write(.)与 WriteLine(.)的区别是:Write(.)语句把信息输出到控制台,之后光标停留在同一行,而WriteLine(.)把信息输出,之后换行。,2023/8/31,9,整型布尔型字符型(整型的一种特殊情况)浮点型小数型,简单类型(Simple types)结构类型(struct types)枚举类型(Enumeration types),2.2 数据类型,C#语言的数据类型主要分为两类:值类型(Value Type)和引用类型(Reference Type)。其中,值类型的变量直接存储
6、它的数据内容,而引用类型的变量存储的是对实际数据的引用。C#的引用类型包括类类型(Class Type)、数组类型(Array Type)、接口类型(Interface Type)和委托类型(Delegate Type)。,对象类型类类型接口代表元字符串类型数组,引用类型,值类型,2023/8/31,10,2.2.1 值类型,值类型可以分为简单类型、结构类型和枚举类型。1简单类型 简单类型分整数类型、浮点类型、decimal类型和bool类型。,2023/8/31,11,简单类型:整型,sbyte型为有符号8位整数byte型为无符号16位整数short型为有符号16位整数ushort型为无符号
7、16位整数int型为有符号32位整数uint型为无符号32位整数long型为64位有符号整数ulong型为64位无符号整数char字符型为一个单Unicode 字符,16位长注意:在C中,int不再取决于一个机器的字(word)的大小,而long被设成64位。,2023/8/31,12,简单类型:浮点型,float:取值范围在 1.5x10-45 3.4x1038之间,精度为7位数。double:取值范围在 5.0 x10-324 1.7x10308之间,精度为 1516 位数。,2023/8/31,13,简单类型:小数型,小数型是一种高精度、128位数据类型,它打算用于金融和货币的计算。当定
8、义一个变量并赋值给它时,使用 m 后缀以表明它是一个小数型:decimal decMyValue=1.0m;如果省略了m,在变量被赋值之前,它将被编译器认作double型。,2023/8/31,14,结构类型,2结构类型 结构类型是一种复合数据类型,用于将多个不同类型的成员组合为一种新的类型。结构的声明使用struct关键字。如下所示:,2023/8/31,15,struct Student/定义结构类型Studentpublic string id;public string name;public int age;public string classname;public string
9、telephone;创建结构实例的过程和创建类实例相似,例如:Student stu=new Student();对结构的成员的访问使用点运算符。例如:stu.age=20;,2023/8/31,16,在C#中,结构和类的区别在于结构是一个值类型,而类是一个引用类型。使用结构的主要思想是用于创建小型的对象,可以节省内存,因为没有如类对象所需的那样有额外的引用产生。,2023/8/31,17,1:using System;2:3:struct IP4:5:public byte b1,b2,b3,b4;6:7:8:class Test9:10:public static void Main()1
10、1:12:IP myIP=new IP;13:myIP.b1=192;14:myIP.b2=168;15: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:,2023/8/31,18,3枚举类型 枚举类型是一组逻辑上密不可分的整数值。枚举的声明使用Enum关键字。例如:enum Weekday/定义枚举类型 weekdaySunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday 在
11、枚举类型中,第一个枚举数的默认值为0,后面每个值依次递增1。当然,也可以使用赋值语句显式地为枚举中的常量赋值。访问枚举需要使用点运算符。,2023/8/31,19,2.2.2 类,类是面向对象编程的基本构造块,是一种包含数据成员、函数成员和嵌套类型的数据结构。类的数据成员有常量、域和事件。函数成员包括方法、属性、操作符、构造函数和析构函数。类支持继承机制,通过继承、派生可以扩展类的数据成员和函数方法,进而达到代码重用和设计重用的目的。,2023/8/31,20,1.类的定义格式为:属性 类修饰符 class 类名类体 其中,类修饰符包括:new、abstract、sealed、public、p
12、rotected、internal、private。类体用于定义类的成员,类的成员中可以包含数据成员和函数成员。,2023/8/31,21,2.创建类的实例 在定义了类之后,就可以通过new运算符来创建类的实例(即对象),类实例就是类类型的变量,其创建格式为:类名 实例名即变量名=new 类名(参数);实际上,类的实例的创建中,运算符new通过调用类的构造函数完成类的初始化工作。,2023/8/31,22,3.类的成员 类的成员分为两大类,类本身定义的成员和从基类继承来的成员。类成员包括函数成员和数据成员。可以包含可执行代码的成员统称为该类的函数成员,一个类的函数成员包括:方法、属性、事件、索
13、引器、运算符、实例构造函数、析构函数和静态构造函数。数据成员包含类要处理的数据,它包括常数和字段。在程序中,对类的成员的访问要使用点运算符“.”完成。,2023/8/31,23,(1)类成员访问修饰符 类成员访问修饰符用于指定类成员的可访问性。C#共有public、private、protected和internal四个类成员访问修饰符。(2)静态成员与实例成员 类的成员要么是静态成员,要么是实例成员。当用static修饰符定义成员时,得到静态成员,静态成员属于类,为这个类的所有实例所共享;不用static修饰符定义的成员,称为实例成员,实例成员属于类的实例。,2023/8/31,24,4.构
14、造函数和析构函数 构造函数是类的特殊函数成员,它主要用于为对象分配空间,完成对象的初始化工作。具有以下特点:构造函数的名称与类的名称相同。构造函数可以具有参数,但没有返回值。构造函数在对象定义(即创建对象)时自动被调用。在类中没有定义该类的构造函数时,则编译系统会自动生成一个默认的构造函数,该函数是一个不带参数、函数体为空的函数。构造函数可以重载,但不能继承。构造函数可分为实例函数和静态构造函数。,2023/8/31,25,析构函数也是类的特殊函数成员,它的主要作用是释放类的实例,它具有以下特点:析构函数的名字与类名相同,但其名称前加一“”符号。析构函数不能带参数,也没有返回值。当撤消对象时,
15、系统自动调用析构函数。析构函数不能被继承,也不能被重载。,2023/8/31,26,5.类的方法 方法是表现类或对象行为的函数成员。类中方法的声明的格式如下:属性集 方法修饰符 返回值类型 方法名(形参列表)方法体 其中,方法的修饰符主要有:new、public、protected、internal、private、static、virtual、sealed、override、abstract、extern。,2023/8/31,27,用修饰符static定义方法时,表示该方法为静态方法。未用修饰符static定义的方法为实例方法。静态方法不对特定实例进行操作,不与实例相关联,它属于类,与类相
16、关联,所以调用静态方法不需要创建类实例。要调用类的静态方法,只需要类名和方法名,中间加上圆点“.”运算符即可。静态方法只能访问类的静态成员,访问非静态成员是错误的。实例方法属于类的实例,可对类的某个特定实例进行操作,调用实例方法需要通过类的实例,格式是“实例名.方法名”,实例方法可以访问类中的任何成员。,2023/8/31,28,6.字段与属性(1)字段 字段就是类中声明的一种数据成员,即与对象或类相关联的变量。根据在类中定义字段时所用到的修饰符的不同,可将字段分为:静态字段、实例字段、只读字段。,2023/8/31,29,静态字段:用static修饰符声明的字段称为静态字段,静态字段属于类,
17、而不属于类的实例。实例字段:未用static修饰符声明的字段称为实例字段,实例字段属于类的实例,即类的每个实例拥有自己的字段。只读字段:用readonly修饰符声明的字段为只读字段,只读字段实质上是特殊的实例字段,它的特殊性表现在只读字段只能在字段声明时或在构造函数中赋值。在其他地方都不能改变只读字段的值。,2023/8/31,30,(2)属性 属性用于刻画对象的特征或表示对象的状态。属性与字段不同,它不表示存储位置。相反,属性有访问器。这些访问器指定在它们的值被读取或写入时需要执行的语句。因此,属性提供了一种机制,它把读取和写入对象的某些特性与一些操作关联起来。给属性赋值时使用set访问器,
18、set访问器始终使用value关键字设置属性值。获取属性值时使用get访问器,get访问器通过return返回属性的值。在访问声明中,如果只有get访问器,表示是只读属性;如果只有set访问器,表示只写属性;如果既有get访问器,也有set访问器,表示读写属性。,2023/8/31,31,7.类的继承、派生和多态性 继承是面向对象的程序设计的一个重要特征,它允许在已有类的基础上创建新类,新类从已有类中继承成员,而且可以重新定义或加进新成员,从而形成类的层次或等级。一般称被继承的类为基类或父类,而称继承后产生的类为派生类或子类。,2023/8/31,32,C#中的继承有如下重要特性:只允许单继承
19、,即派生类只能有一个基类。继承是可以传递的,如果类C从类B派生,而类B从类A派生,那么类C就会既继承在类B中声明的成员,又继承在类A中声明的成员。派生类扩展它的直接基类,即派生类可以添加新的成员,但不能删除从基类继承的成员。基类的构造函数和析构函数不能被派生类继承。派生类可以隐藏基类的成员,如果在派生类中声明了与基类同名的新成员时,基类的该成员在派生类中就不能被访问到。,2023/8/31,33,(1)派生类的声明类的声明格式为:属性 类修饰符 class 类名:基类类体 可以看出,在派生类的声明中,通过在类名的后面加上冒号“:”和基类的名称表示继承。派生类声明中的其他部分与一般类的声明方法中
20、的规定相同。,2023/8/31,34,(2)base关键字 在有关继承和派生的程序设计中,常用到一个关键字base,base关键字用于从派生类中访问基类的成员,它有两种基本用法:指定创建派生类实例时应调用的基类构造函数,用于调用基类的构造函数完成对基类成员的初始化工作。在派生类中访问基类成员。,2023/8/31,35,(3)多态性 多态性是指不同对象收到相同消息时,会产生不同动作。从而实现“一个接口,多种方法”。C#支持两种多态性。第一种是编译时多态性,是在程序编译时就决定如何实现某一动作,它通过方法重载和运算符重载实现。编译时多态性在编译时就知道调用方法的全部信息。第二种是运行时多态性,
21、是在运行时动态实现某一动作,它通过继承和虚成员实现。,2023/8/31,36,对于类中的方法(函数成员),若声明时加上virtual修饰符,则称该方法为虚方法,反之称为非虚方法。virtual修饰符不能与修饰符static、abstract和override一起使用。虚方法重载时要求方法名称、方法参数类型、方法参数、方法参数顺序、方法返回值类型都必须与基类中虚方法完全一样。在派生类中重载虚方法时,要加上override修饰符。,2023/8/31,37,8.抽象类与密封类(1)抽象类 抽象类表示一种抽象的概念,用来为它的派生类提供一个公共接口。在声明类时,加上abstract修饰符时就表示声
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 面向 对象 编程 基础

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