C#面向对象程序设计 教学课件 ppt 作者 王晶晶 主编第2章

上传人:w****i 文档编号:92482015 上传时间:2019-07-10 格式:PPT 页数:48 大小:324KB
返回 下载 相关 举报
C#面向对象程序设计 教学课件 ppt 作者 王晶晶 主编第2章_第1页
第1页 / 共48页
C#面向对象程序设计 教学课件 ppt 作者 王晶晶 主编第2章_第2页
第2页 / 共48页
C#面向对象程序设计 教学课件 ppt 作者 王晶晶 主编第2章_第3页
第3页 / 共48页
C#面向对象程序设计 教学课件 ppt 作者 王晶晶 主编第2章_第4页
第4页 / 共48页
C#面向对象程序设计 教学课件 ppt 作者 王晶晶 主编第2章_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《C#面向对象程序设计 教学课件 ppt 作者 王晶晶 主编第2章》由会员分享,可在线阅读,更多相关《C#面向对象程序设计 教学课件 ppt 作者 王晶晶 主编第2章(48页珍藏版)》请在金锄头文库上搜索。

1、第2章 数据类型、运算符与表达式,数据类型 类型转换 运算符和表达式,2.1 数据类型,C#语言支持以下数据类型:,数据类型,值类型,引用类型,结构类型,简单类型,枚举类型,整数类型,浮点类型,小数类型,字符类型,布尔类型,类类型,数组类型,接口类型,值类型用来存储实际值,而引用类型则用来存储对实际数据的引用。,2.1.1值类型,值类型包含简单类型、枚举类型和结构类型。类型是同类型数据的抽象,不同的类型在C#中用不同的类型标识符来表示。如表2-1。,表2-1 值类型,1.简单类型 从计算机的表示角度来看,简单类型又可分为整数类型、浮点类型、小数类型、布尔类型和字符类型。所有的简单类型(C# 语

2、言的组成部分)均为 .NET Framework 系统类型的别名。例如,int 是 System.Int32 的别名。,整数类型,C#中提供了8种整数类型,它们的取值范围及类型标识符见表2-2所示。,表2-2 整数类型表,C#提供了两种数据类型来表示小数:单精度浮点型(float)和双精度浮点型(double)。两者的划分依据是取值范围和精度的不同,见表2-3。,浮点类型,表2-3 浮点类型表,小数类型,为了满足财务和金融计算领域方面高精度的要求,C#提供了小数类型(decimal)这种高精度的数据类型,避免浮点类型计算造成的误差。 小数类型数据的后面必须加m或M后缀来表示它是小数类型的,如3

3、.14m。否则会被解释成标准的浮点类型的数据。 表2-4列出了小数类型的取值范围及精度。,表2-4 小数类型表,字符类型,C#提供的字符类型按照国际上公认的标准,采用Unicode字符集。它可以表示世界上大部分语言种类。所有Unicode字符的集合构成字符类型。 字符类型的描述见表2-5。,表2-5 字符类型表,给一个字符类型的变量赋值: char name = a; char类型的变量值必须用单引号括起来。单引号内的字符数量必须且只能是一个,并且不能是单引号或者反斜杠。 为了表示单引号和反斜杠等特殊的字符,C#提供了转义符,如表2-6所示。,表2-6 转义字符,布尔类型,布尔类型表示现实中的

4、“真”或“假”这两个概念,主要用来进行逻辑判断。在C#中,分别采用true和false这两个值来表示“真”和“假”,如表2-7所示。,表2-7 布尔类型,2.枚举类型,假设要在程序中表示一年中的季节,可以使用整数0、1、2和3来分别表示春季、夏季、秋季和冬季,这虽然可行,但并不直观。为此,C#中提供了一个更好的方案,使用枚举类型可以将一年中的四季分别用Spring、Summer、Autumn和Winter这些直观的符号来表示,便于阅读和理解。枚举类型是用户自定义的数据类型,是一种允许用符号代表数据的值类型。当程序中某个变量具有一组确定的值,通过“枚举”可以将其值一一列举出来。,比如,声明一个代

5、表季节的枚举类型Season,可以这样声明: enum Season Spring, Summer, Autumn, Winter; enum 关键字用于声明枚举。Season是枚举名,花括号“”和“”括起来的部分是枚举成员表,枚举成员之间用逗号分隔,任何两个枚举成员不能具有相同的名称。这里声明了一个Season枚举类型,它包含Spring, Summer, Autumn, Winter4个枚举成员。,声明好了一个枚举类型之后,我们就可以像使用简单类型一样来声明枚举类型的变量了,格式为: 枚举类型名 变量名; 以前面定义的Season枚举类型为例,要声明该类型的变量,可以这样: enum Se

6、ason Spring, Summer, Autumn, Winter; Season season1,season2,season3,season4; season1=Season.Spring; season2=Season.Summer; season3=Season.Autumn; season4=Season.Winter; 这样,season1,season2,season3,season4这4个变量的取值分别为Spring,Summer,Autumn和Winter。 每种枚举类型都有基础类型,枚举元素的默认基础类型为int。在Season枚举中,Spring为 0,Summer为

7、 1,Autumn为 2,依此类推。默认情况下,C#规定第1个枚举成员的值取0,其它成员按顺序依次增1。在编程时,可以根据需要为枚举成员赋值。,几种为枚举成员赋值的情况。,(1)为第1个枚举成员赋值 enum Season Spring=1, Summer, Autumn, Winter; 在此枚举中,强制元素序列从 1 而不是 0 开始。 (2)为某一个枚举成员赋值 enum Season Spring, Summer, Autumn=6, Winter; 从第一个枚举成员Spring到被赋值的枚举成员Autumn前的那个枚举成员Summer是按默认方式取值的,即Spring为0,Summe

8、r为1。被赋值的枚举成员Autumn取赋给它的值6,它后面的枚举成员则在此基础上依次增1,即Winter为7。 (3)为多个枚举成员赋值 enum Season Spring, Summer=4, Autumn=6, Winter; 被赋值的枚举成员取所赋给它的值,其后的枚举成员的值依次加1,在第一个被赋值的枚举成员Summer之前的枚举成员,按默认方式取值。故Spring取值为0,Summer取值为4,Autumn取值为6,Winter取值为7。,枚举成员的值在不经过显示转换前,是不会变换成整数值的。,例2-1 枚举类型的应用 using System; public class EnumT

9、est enum WeekDay Sat=1, Sun, Mon, Tue, Wed, Thu, Fri; static void Main() int x = (int)WeekDay.Sun; int y = (int)WeekDay.Fri; Console.WriteLine(“Sun = 0“, x); Console.WriteLine(“Fri = 0“, y); ,输出结果为: Sun=2 Fri=7 在这个例子中,我们通过“枚举名.枚举成员”的方式来访问枚举成员,如代码中的WeekDay.Sun。,3.结构类型,利用前面介绍过的数据类型进行运算似乎已经足够了。但是,我们会经常

10、碰到一些更为复杂的情况。比如,同学录的记录中包含姓名、性别、家庭住址等信息。如果将姓名、性别、家庭住址分别定义为互相独立的简单类型,则难以反映它们之间的内在联系,这些项都与某一学生相联系。那么,有没有好的解决方法呢? C#中提供了一种称为结构类型的数据类型用来有组织地把这些不同类型的数据信息存放到一起。结构类型是用户自定义的数据类型。使用结构类型可以方便地存储多条不同类型的数据,极大地方便了编程人员对大量信息的管理。C#中的结构类型类似于C语言中的结构体。,结构类型采用struct来声明,格式如下: struct 结构名 /结构成员定义 说明: 1.struct是一个关键字,表明声明的是一个结

11、构体; 2.结构名的命名需符合C#标识符的命名规范:以字母或者下划线开头,其后可以跟任意个字母、数字或者下划线。 3.花括号中的内容称为结构体,定义结构中所包含的所有成员。每个成员的声明都采用如下形式: 访问修饰符 数据类型 成员名;,声明同学录的记录结构,struct student public string name; public string sex; public string address; 其中,public是访问修饰符,用来修饰数据成员的可访问性。关于访问修饰符的介绍我们会在类一章中做详细介绍。,声明了一个结构体类型,就可以定义该类型的变量了,格式如下: 结构类型名 变量名

12、; 如:student student1; 通过结构变量加上访问符“.”号,再跟成员的名称,可以访问结构的成员,格式为: 结构变量名.成员名; 如:student1.name=“王刚”; 可以把结构类型作为另一个结构的成员,形成结构的嵌套。例如,“同学录”这个结构中又包括了“地址”这个结构,“地址”结构类型包括城市、街道和门牌号码3个成员。,请看以下示例: struct Student public string name; public string sex; public string address public string city; public string street; pu

13、blic uint no; Student student1;,2.1.2 引用类型,引用类型是和值类型并列的类型,值类型比较简单,对于那些结构比较复杂、抽象能力比较强的数据,就需要使用引用类型来定义。C#中引用类型有4种:类类型、数组类型、接口类型和委托类型。关于它们的详细介绍,我们会在后续章节中进行。,2.2 类型转换,在现实生活中,经常需要在不同的数据类型之间进行转换。比如,举行一次演讲比赛,获奖的比例是6%,如果参加演讲比赛的总人数是170个人,那么获奖的人数就是1706%=10.2个人。在这种情况下,就不得不舍去0.2,把10.2这个的浮点数变成一个整数10来对待。这就是现实生活中的

14、数据类型转换的例子。在C#语言中,数据类型的转换可以分为两类:隐式类型转换和显式类型转换。,2.2.1 隐式类型转换,隐式类型转换是系统默认的、不需要加以声明就可以进行的转换。在隐式类型转换过程中,编译器无需对转换进行详细检查就能够安全地执行转换。比如,从int类型转换到long类型就是一种隐式类型转换。 表2-8列出了在C#中可以进行的各种隐式数值转换。,表2-8 隐式转换表,例2-2 隐式类型转换(将字符类型隐式转换为整型) using System; using System.Collections.Generic; using System.Text; namespace Conver

15、tData class Program static void Main(string args) char c= a ; Console.WriteLine(“c=0“,c); int Q = c; Console.WriteLine(“Q=0“, Q); ,程序运行结果如图2-1所示。,图2-1 程序运行结果,例2-3 隐式类型转换(将整型隐式转换为字符类型) using System; using System.Collections.Generic; using System.Text; namespace ConvertData class Program static void M

16、ain(string args) int a = 97; Console.WriteLine(“a=0“,a); char c = a; Console.WriteLine(“c=0“, c); ,程序运行结果如图2-2所示。,图2-2 错误列表,这个程序在编译时出现了错误,我们从错误列表中可知int类型是不能隐式转换成char类型的,但是在上个程序中,char类型是可以隐式转换为int类型的,这个问题请注意。,2.2.2 显式类型转换,显式类型转换又叫做强制类型转换。与隐式类型转换相反,显式转换需要用户明确的指定转换类型。格式如下: (类型标识符)表达式 将表达式的值的类型转换为类型标识符的类型。 如(int)3.14 表示的是把double类型的3.14转换成int类型。 除了使用这种方式进行显式转换外,还可以使用Convert命令进行显式转换。表2-9列出了使用这种方式可以进行的显式转换。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号