




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章C 语言基础 本章目标 掌握C 语言的结构掌握C 语言的数据类型掌握常量与变量的声明与使用掌握常用的流程控制理解并掌握C 面向对象编程中的常用技术掌握简单的异常处理 C 语言简介 NETFrameworkC 的主要特点C 主要功能 NETFramework C 语言是微软公司为 NET平台量身定做的一种编程语言 NETFramework的出现使得程序员只用专注于程序设计本身 而不用把精力过多地放在语言的学习上 NETFramework是 NET平台的基础框架 它提供了跨语言的协同工作能力 其强大的能力来自于公共语言运行时 CLR 和基本类库 C 的主要特点 简单易学兼容性面向对象性安全处理 C 主要功能 设计Windows应用程序自定义Windows控件库设计控制台应用程序设计智能设备应用程序设计ASP NETWeb应用程序设计ASP NETWebServices设计ASP NETWeb移动应用程序自定义Web控件 C 程序结构 引入命名空间程序入口点注释 程序示例 引入命名空间 usingSystem namespaceFirstProject classProgram staticvoidMain string args 提示用户输入Console WriteLine 请输入您的姓名 StringstrName Console ReadLine Console WriteLine Hello 0 strName Console ReadLine 引入System命名空间 思考 如果不引入System命名空间 程序该怎么修改 程序入口点 Main方法是程序的入口点 一个C 程序中只能有一个入口点 声明Main方法需要注意以下几点 1 Main方法是程序的入口点 程序控制在该方法中开始和结束 2 该方法在类或结构的内部声明 并且必须为静态方法 而不应为公共方法 在上面的示例中它接受默认访问级别private 3 可以具有void或int返回类型 4 声明Main方法时既可以使用参数 也可以不使用参数 5 参数可以作为从零开始索引的命令行参数来读取 6 与C和C 不同 程序的名称不会被当做第1个命令行参数 注释 单行注释 多行注释 XML文档注释 Thisclassperformsanimportantfunction publicclassMyClass publicstaticvoidMain C 数据类型与变量 值类型与引用类型常量与变量数据类型转换枚举数组字符串处理日期对象 值类型与引用类型 值类型直接存储其值 而引用类型存储对值的引用 值类型存储在堆栈中 而引用类型存储在托管堆上 引用类型主要有 类类型 class type 数组类型 array type 接口类型 interface type 委托类型 delegate type 值类型包括 基本值类型结构类型枚举类型 常量与变量 变量被定义后 在程序执行阶段 会一直存储在内存中 变量的值可根据需要来改变 变量必须先声明才能使用 inta a 3 inta 3 inta 3 b 5 变量有其作用域局部变量 仅在声明变量的范围内有效静态变量 使用static进行声明 在整个应用程序运行期间一直存在 常量与变量 常量必须在声明时进行赋值 并且赋值后不能被修改 const数据类型标识符常量名 表达式 constdoublePI 3 1415926 数据类型转换 在一定条件下 将一种数据类型变为另一种数据类型的过程称为类型转换 隐式转换 遵从由低级到高级转换的规则 不会发生数据丢失 例如 表达式16 A 3 1415926 首先 A 为char类型 先转换成整数65 Unicode编码为65 在与16和3 1415926作加法运算 表达式的结果为double类型 数据类型转换 显示转换使用类型转换关键字 语法格式如下 类型标识符 表达式 使用Convert类或Parse方法进行转换 ToString 方法 可将任何一种数据类型转换为字符串类型 doubled 3 67 inti int d strings 123 doubled1 Convert ToDouble s doubled2 double Parse s 枚举 是一种用户自定义的值类型声明枚举类型 enum枚举名 枚举成员名称1 枚举成员名称2 说明 枚举成员的枚举值都默认为整型 且第一个成员的值默认为0 其他成员依次增加1 也可以单独指定值 声明与引用枚举 enumWeather Sunny 默认值0Cloudy 默认值1Rain 默认值2Snow 默认值3fog 默认值4 Weatherbj bj Weather Sunny 显示结果Console WriteLine bj 显示Sunny 而不是数字0Console WriteLine int bj 显示数字0 数组 数组是一组具有相同类型和名称的变量的集合 组成数组的这些变量称为数组元素 C 数组元素的下标是从0开始的 数组元素的个数称为数组的长度 可以使用Array类的Length属性 建立数组对象时 数组长度必须使用常量而不能使用变量 int arr newint 3 正确int arr newint n 错误二维数组的声明 int arr newint 3 4 声明一个3行4列的二维数组 字符串处理 字符串数组一个字符串可以看做是有一个个字符组成的数组 字符串的第一个字符索引为0stringMyString welcome Console WriteLine MyString 0 第1个字符Console WriteLine MyString 4 第5个字符字符串合成使用运算符 stringstr1 hello stringstr2 world stringstr str1 str2 字符串处理 求长度Length属性是描述字符串长度的属性stringstr welcome intn str Length 那么n就得到str字符串的长度为8 字符串处理 大小写转换ToUpper 方法是把字符串中所有的字母都变成大写stringstr WelcomE str ToUpper str WELCOME ToLower 方法是把字符串中所有的字母都变成小写str ToLower str welcome 字符串处理 删除字符串前面或后面的空格StringmyStr1 right StringmyStr2 myStr1 Trim mystr2 right 替换字符串Replace str1 str2 将字符串中的str1子串替换为str2stringstr welcometoBeijing stringnewStr MyString Replace Beijing Shangqiu 字符串处理 求子串SubString inti intj 方法是从str1字符串的n1个字符开始 截取长度为n2的子串str1 SubString n1 n2 例 stringstr1 people stringstr2 str1 sub 0 3 str2 peo 字符串处理 获取位置IndexOf stringstr 方法是从str1字符串找出第一次出现某子字符串的位置stringstr1 youarewelcome intn str1 IndexOf are 那么n的值为4 字符串处理 字符串比较Compare str1 str2 方法静态方法 用于比较两个字符串是否相等 相等返回0 否则返回 1 例 inti string Compare yes no i 1intj string Compare yes yes j 0 日期对象 C 使用DateTime对象创建一个新的日期实例DateTimeBirthDay newDateTime 2005 10 9 参数的顺序是年 月 日 可通过下面方法访问各个部分intDay BirthDay Day intMonth BirthDay Month intYear BirthDay Year 流程控制 选择语句循环语句 选择语句 If语句Switch语句 switch语句 switch 控制表达式 case常量表达式1 语句块1 break case常量表达式2 语句块2 break case常量表达式n 语句块n break default 语句块n 1 break 说明 控制表达式的类型可以使简单值类型 枚举类型或string类型 每个case标签中常量表达式必须属于或隐式转换成控制类型 每个case标签中的常量表达式不能相同 否则会编译出错 Switch语句中最多只能有一个default标签 流程控制 简单运算器 staticvoidMain string args doubleop1 op2 result 0 charc Console WriteLine 请输入第一个操作数 op1 double Parse Console ReadLine Console WriteLine 请输入运算符 必须是加 减 乘 除 中的一种 c Convert ToChar Console ReadLine Console WriteLine 请输入第二个操作数 op2 double Parse Console ReadLine 流程控制 简单运算器 switch c case result op1 op2 break case result op1 op2 break case result op1 op2 break case while op2 0 Console WriteLine 除数不能为 请重新输入第二个操作数 op2 double Parse Console ReadLine result op1 op2 break Console WriteLine 0 1 2 3 op1 c op2 result Console ReadLine 循环语句 for语句foreach语句while语句do while语句 for语句 冒泡排序 staticvoidMain string args int arr newint 16 25 9 90 23 inttemp for inti 0 iarr j 1 temp arr j arr j arr j 1 arr j 1 temp for inti 0 i arr Length i Console WriteLine t arr i Console ReadLine foreach语句循环语句输出一个数组的所有元素值 staticvoidMain string args intindex 1 string myArray newstring 6 Pirlo Ronaldo Beckham Kaka Owen Henry foreach stringarrinmyArray Console WriteLine 第 0 个球员的名字是 1 index arr Console ReadLine 思考题 用数组保存学生成绩 要求 1 将成绩进行等级划分为 不及格 及格 良好 优秀 2 统计各个级别的学生人数 3 输出属于各个级别学生的成绩 面向对象 面向对象的优点和特征类的声明和实例化类成员构造函数和析构函数封装 属性继承多态 面向对象的优点和特征 面向对象编程的优点 可维护性高可复用好可扩展好灵活性高面向对象的特点 抽象封装继承多态 类的声明和实例化 类是对象的模板 使用对象前必须先创建类 访问修饰符 class类名 父类名 字段 描述对象的状态属性 用于设置或获取类中相关的数据值方法 实现对象的行为构造函数 初始化对象 privateclassPeople privatestringname 类的声明和实例化 对象是类的实例 是具体的 要使用对象 必须使用关键字new实例化类的一个对象 new Peopleobject1 newPeople 类成员 成员变量成员方法 成员变量 常量 在类中声明的常量 代表与类相关的常数值 字段 在类中声明的变量 用于存储属性的值 类型 属于类的局部类型 索引器 又称下标指示器 通过索引器访问类的多个实例 成员方法 方法 完成类中的各种操作 是封装在类内部的 用于执行一定操作的过程或函数 属性 用于设置或获取类中相关的数据值 如定义字段的值并对它们进行读 写操作 事件 由类产生的通知 用于说明发生了什么 是一种触发机制 是类对外界的响应 使对象具有与外界进行交互的能力 当某个事件发生时 就调用了与该事件相关联的方法 构造函数 析构函数 构造函数和析构函数 构造函数构造函数特点 1 具有和类相同的名称 2 没有返回值构造函数功能 1 为对象分配内存空间 2 成员变量的初始化析构函数特点 与类名相同 前面多一个 功能 收回对象占用的内存空间 构造函数 封装 属性 属性体现了面向对象的封装性通过访问器 get set 来操作类的数据内容通过get set访问器对属性值进行读写主要有三种 只有set访问器 表名属性值只可设置 可写 只有get访问器 表名属性值只可读 可读 既有set又有get访问器 表名属性值既可读也可设置 可读可写 说明 属性的get访问器通过return来读取属性值 set访问器通过vlaue来设置属性值 继承 C 支持类的单继承 子类可以继承已有的基类的特征和能力 而且可以加入新的特性或者是修改已有的特性 类继承的基本语法是 class子类名称 父类名 类的主体 说明 1 子类将从父类继承而来的成员变量和方法作为自己的成员变量和方法 2 子类不能继承父类中用private修饰的成员变量和方法 base关键字 在类的继承中 如果在子类中定义了与父类同名的成员变量 则父类的成员变量不能被直
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河南省职工医院-国际口腔中心招聘18人模拟试卷及答案详解(各地真题)
- 2025广东惠州市惠城区招聘公办义务教育学校硕博教育人才30人(第二批)模拟试卷及答案详解(必刷)
- 2025湖南邵阳市湘中幼儿师范高等专科学校招聘24人模拟试卷及答案详解(有一套)
- 2025广东深圳大学弋泽龙教授团队招聘1名研究助理模拟试卷及一套完整答案详解
- 上海市中医院产后盆底肌训练指导考核
- 2025内蒙古新正产业发展有限公司高校毕业生招聘41人(第三期)模拟试卷及参考答案详解一套
- 2025年河北唐山滦南县专项选聘教师11名考前自测高频考点模拟试题及答案详解(必刷)
- 2025江西吉安市青原区教育体育局面向社会招聘8人考前自测高频考点模拟试题及答案详解一套
- 2025贵州铜仁开放大学引进专业技术人才模拟试卷及答案详解(夺冠)
- 2025年黑河市就业见习人员招募模拟试卷及参考答案详解一套
- 急性重症胰腺炎个案护理
- 软式棒垒球-上手传接球教案高一上学期体育与健康人教版
- 《彝家娃娃真幸福》课件
- 生物医药强国战略研究
- 舒适护理:床上擦浴
- 浙江金华市中心医院医疗集团(医学中心)招聘工作人员(2022年第一批)笔试备考题库及答案解析
- GB/T 23985-2009色漆和清漆挥发性有机化合物(VOC)含量的测定差值法
- 卓乐对刀仪说明书
- 拆房协议书模板
- 《斐波那契数列》课件
- 带式电磁除铁器检修作业指导书
评论
0/150
提交评论