第4部分类、常量与变量

上传人:宝路 文档编号:48597848 上传时间:2018-07-17 格式:PPT 页数:94 大小:1.36MB
返回 下载 相关 举报
第4部分类、常量与变量_第1页
第1页 / 共94页
第4部分类、常量与变量_第2页
第2页 / 共94页
第4部分类、常量与变量_第3页
第3页 / 共94页
第4部分类、常量与变量_第4页
第4页 / 共94页
第4部分类、常量与变量_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《第4部分类、常量与变量》由会员分享,可在线阅读,更多相关《第4部分类、常量与变量(94页珍藏版)》请在金锄头文库上搜索。

1、内容(Contents)数据类型词法结构 常量和变量 运算符和表达式练习C#语言编程基础v数据类型、运算符和表达式是编程的 基础。vC#支持种类丰富的数据类型和运算符,这 种特性使C#适用于广泛的编程范围。v本章将介绍C#的基本语法,包括词法结 构、数据类型、变量与常量、运算符和 表达式等编程的基础知识。21 词法结构v词法是构成程序设计语言的最基本单 位。v程序是由若干个语句构成,而语句是由若 干个具有特殊含义的单词和运算符构成的 。v所以学习一门编程语言,首先应该从词法 入手。31.1 标识符标识符(identifier)是由程序开发人员为类型、方法、变量等所选择的名字。 C#的标识符应当

2、使用字母或下划线作为开头,由字 母、数字、下划线(“_”)和美元符号(“$”)组成,不能包括空格、标点符号和运算符,而且标识符 的名称最好和实际的应用联系起来,这样可以使程序更容易理解,做到“见名知意”。 比如,用来表示售货员的标识符使用salesman比用 people更容易理解。4 下面是合法的标识符:Sum,average,_total,Student_name,Lotus_1_2_3 下面是不合法的标识符:Abc-abc /中间使用了减号而非下划线3abc /以数字开头Abc abc /中间有空格class /使用关键字作为标识符5vC#的标识符不能与关键字相同,但是 可以使用“”前缀

3、来避免这种冲突。 例如:whilewhilev上面两个标识符中,第一个标识符是 合法的,而第二个标识符不是合法的 ,因为while是关键词。6vC#的标识符区别大小写,例如下面的 4个标识符是不同的:MembermemberMemBerMEMBER71.2 关键字v同C和C+语言一样,C#也规定了很多关 键字用于程序控制、数据说明或者其他功 能,由于它们的特殊意义,所以这些关键 字不能作为标识符使用。82 数据类型v数据类型是用来定义现实生活中各种数 据形式的标识符及其存储形式。vC#中数据类型主要分为两大类:值类型和引用类型。v在此,先讲解这两种类型,然后再讨论 数据类型之间的转换。92.1

4、 值类型值类型通常用来表示基本类型、简单类型。 C#的值类型包括3种:简单类型、结构类型和枚举类型。 简单类型包括整数类型、浮点类型、小数类型、字符类型和布尔类型等。10 1. 整数类型 整数类型的数据值只能是整数。数学上的整 数可以从负无穷大到正无穷大,由于计算机 存储单元的限制,程序语言提供的整数类型 的值总是在一定的范围内。 C#定义了8种整数类型,划分的根据是这些 类型所占存储器的位数。例如,一个8位的 整数类型可以表示28=256个数值。11整数类型如表所示。12v2. 浮点类型v实数在C#中采用浮点类型的数据来表示。v浮点类型的数据包括两种:单精度浮点型(float)和双精度浮点型

5、(double),其区别在于取值范围和精度不同。133.2.1 值类型v浮点类型数据的精度(小数点后所保留的有效数 字)和取值范围如表3-3所示。14 3. 小数类型 小数类型(decimal)数据是高精度的类型数据,占用16个字节,主要是为了满足需要高精度的财务和金融方面的计算。 小数类型数据的取值范围和精度如下: 小数类型:取值范围在1.0 x 10-287.9 x 1028之间,精度为29位数。 要注意的是,小数类型数据的后面必须跟m或者M后缀来表示它是decimal类型的,如3.15m,0.35m等,否则就会被视为标准的浮点类型数据,导致数据类型不匹配。15v提示:在C#中,可以通过给

6、数值常数加后缀的方法来指定数值常数的类型,可以使用的数值常数后缀 有以下几种:(1)u(或者U)后缀:加在整型常数后面,代表 该常数是uint类型或者ulong类型。(2)l(或者L)后缀:加在整型常数后面,代表该 常数是long类型或者ulong类型。(3)ul(或者uL、Ul、UL、lu、lU、LU)后缀: 加在整型常数后面,代表该常数是ulong类型。16(4)f(或者F)后缀:加在任何一种数值常数后面 ,代表该常数是float类型。(5)d(或者D)后缀:加在任何一种数值常数后 面,代表该常数是double类型。(6)m(或者M)后缀:加在任何一种数值常数后 面,代表该常数是decim

7、al类型。17v示例如下:137f 代表float类型的数值137.0137u 代表unit类型的数值137137.2m 代表decimal类型的数值137.2137.22 代表double类型的数值137.22137 代表int类型的数值13718 4. 字符类型 C#中的字符类型数据采用Unicode字符集。字符类型的类 型标识符是char,因此也可称为char类型。 凡是在单引号中的一个字符,就构成一个字符常数,如下 所示: a、o、*、 9 在表示一个字符常数时,单引号内的有效字符必须且只能 有一个,并且不能是单引号或者反斜杠()等。 为了表示单引号和反斜杠等特殊的字符常数,提供了转义

8、 符,在需要表示这些特殊常数的地方,可以使用转义符来 替代这些特殊的字符。常用的转义符如表3-4所示。19v常用的转义符如表3-4所示。20v5. 布尔类型v布尔类型数据用于表示逻辑真和逻辑假 ,布尔类型的类型标识符是bool。v布尔类型常数只有两种值:true(代表“真”)和false(代表“假”)。212.2 引用类型 在C#中,引用类型的引入主要是因为值类型比较简单,不能描述结构复杂、抽象能力比较强的数据。引用类型,其含义是该类型的变量不直接存储所包含的 值,而是存储当前引用值的地址,因此引用类型数据的 值会随所指向的值的不同而变化,同一个数据也可以有 多个引用。 这与简单类型数据是不同

9、的,简单类型数据存储的是自 身的值,而引用类型存储的是将自身的值所直接指向到 某个对象的值。它就像一面镜子一样,虽然从镜子可以 看到物体,但物体并不在镜子中,只不过是物体的反射 而已。22vC#的引用引用类型有4种:类类型、数组类型、接口类型和委托类型。v类(class)是面向对象编程的基本单位。它是一种包含数据成员、函数成员的数据结构。类的数据 成员有常量、域和事件,函数成员包括方法、属性 、构造函数和析构函数等。v下面将介绍经常用到的两个类:object(对象类型 )和string(字符串类型)。23 1. object类 在C#中,object类是系统提供的基类型,是所有类型的基类,所有

10、的类型都直接或间接派生于对象类型。 因此,对于任何一个object变量,均可以赋给任何类型的值。 int x1 = 10; object obj1; obj1 = x1; Object obj2 = “string“; 对于object类型的变量,声明时必须使用object关键字。24v2. string类v在C#中,有一个用于操作字符串数据的 string类,string类直接派生于object类, 且它是被密封的,这意味着不能从其派生出 类。v一个字符串是被一对双引号所包含的一系列 字符。例如,“Hello world!“就是一个字符 串。 vstring类的用法十分简单:string s

11、tr1=“Hello,“;string str2=“China!“;25合并字符串也很简单: string str3=str1+str2; 如果想访问单个字符,所要做的就是访问下标: char c=str30; 当比较两个字符串是否相等时,简单地使用“=”比较操作符。if(str1=str2).26vC#支持以下两种形式的字符串常数。v(1)常规字符串常数。放在双引号间的一串字符,就是一个常规字符串常数。如前面所 示的,即为常规字符串常数。v除了普通的字符,一个字符串常数也允许包 含一个或多个转义符。例如在下例中,使用 了n和t转义符。273.2.2 引用类型【例3-1】在字符串中,转义符的应

12、用示范。 程序代码如下: using System;class StringDemo static void Main()Console.WriteLine(“First linenSecond line“);/使 用n转义符产生新的一行Console.WriteLine(“AtBtC“); /使用t转义符排 列输出Console.WriteLine(“DtEtF“); 程序运行的结果如图3-1所示。 283.2.2 引用类型v【例3-1】在字符串中,转义符的应用示范。v程序运行的结果如图3-1所示。29v(2)逐字字符串常数。逐字字符串常数以“”开头,后跟一对双引号,在双引号中放入字符。如:

13、“中国人“;“Hello world!“;303.2.2 引用类型v逐字字符串常数同常规字符串常数的区别在于,在逐字字符串常数的双引号中,每个字符都代表其原始的含义,在逐字字符串常数中不能使用转义字符。即,逐字字符串常数中双引号内的内容在被接受时是不变的,并且可以跨越多行。v所以,在逐字字符串中,以“”开始的字符被当作正常的字符处理,而不是转义符。v但是要注意的是,如果要包含双引号(“),就必须在一行中使用两个双引号(”“)。31(2)逐字字符串常数。 string str1 = “hello,China“; /定义规则字符串常数: hello,China string str2 = “hel

14、lo,China”; /定义逐字字符串常数: hello,China string str3 = “hellotworld“; /hello world string str4 = “hellotworld“; /hellotworld string str5 = “Jack said “Hello“ to you“; /Jack said “Hello“ to you string str6 = “Jack said “Hello“ to you“; /Jack said “Hello“ to you32v简单来说,规则字符串要对字符串的转义序列进行解释,而逐字字符串除了对双引号进行解释之外

15、,对其它字符,无需解释,用户定义成什么样,显示结果就是什么样。33v 【例3-2】如何定义规则字符串和逐字字符串。 v 程序代码如下所示: using System;class StringDemo static void Main()string str1 = “one line two linen tthree line“;string str2 = “one linetwo linentthree line“;Console.WriteLine(str1);Console.WriteLine(“-“);Console.WriteLine(str2); 34v【例3-2】如何定义规则字符串和逐字字符串。v程序的运行结果如图3-2所示。352.3 类型转换 数据类型在一定条件下是可以相互转换的,如将 int类型数据转换成double类型数据。 在C#中,允许两种转换方式:隐式转换(implicit conversions)和显式转换(explicit conversions)。36 1. 隐式转换 隐式转换是系统默认的,不需要加以声明就可以进行转换。 在隐式转换过程中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

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