




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 C语言基础语言基础第1页/共44页2教学重点 命名空间 使用创建C#程序 C#数据类型 C#程序结构 类和对象 面向对象程序设计的三个特性第2页/共44页3C#简介 C#是Microsoft公司专为.NET开发平台而设计的、完全面向对象的网络编程语言。 C#是从C和C+发展而来的。 利用C#语言既可以编写Windows应用程序和控制台程序,又可以编写Web程序等。第3页/共44页4命名空间 开发一个大型工程的时候,可能会用到很多对象,需要创建很多类,而且有的时候类的名称会有冲突。 使用命名空间不仅可以消除名称冲突,而且有助于很好地组织整个工程。 C#的程序代码以类、结构、接口等形式存放在命
2、名空间中。第4页/共44页5命名空间的声明和使用1、声明:namespace 命名空间名 /命名空间的成员2、有两种使用方法: 使用引用的全称:命名空间名.类名.方法名如:System.Console.WriteLine(“Hello!”) 利用using语句导入命名空间,然后直接使用类名。using 命名空间名第5页/共44页6使用创建C#程序1.打开VS2005,选择“文件”“新建项目”。2.在“新建项目”对话框中,选择“控制台应用程序”,输入项目名称和项目创建位置。3.在代码编辑器中输入相应代码。4.选择“调试”“启动”运行程序。(或按F5)第6页/共44页7/这是用 C# 编写的一个简
3、单的 HelloWorld 程序using System;namespace Notepadclass HelloWorldstatic void Main()Console.WriteLine(Hello World);声明 HelloWorld 类描述代码的注释Hello World 程序程序程序入口点, Main 的返回类型为 void控制台类的 WriteLine() 方法用于显示输出结果导入 System 命名空间声明命名空间 Notepad将文件保存为将文件保存为 第7页/共44页8数据类型 值类型 简单类型 结构类型 枚举类型 引用类型 对象类型 字符串类型 类类型 接口类型 委
4、托类型 数组类型 两者的区别在于进行存取时,值类型的变量直接存储其数据,而引用类型的变量则存储其在系统中对应的存储地址。 第8页/共44页9值类型 简单类型 整数类型:sbyte、byte、short、ushort、int、uint、long、ulong 布尔(bool)类型(True | False) 字符(char)类型(注意:转义符) 浮点类型:float、double 小数(decimal)类型结构类型 struct 枚举类型 enum第9页/共44页10引用类型 对象类型 object 字符串类型 string 类类型 class 接口类型 interface 委托类型 delega
5、te 数组类型 array第10页/共44页11语句和注释 语句是一个基本的指令单位。包括说明语句、表达式语句和流程控制语句等,一般以分号(;)结尾 注释就是在程序中标记、说明某个程序段的作用,它是不会被执行的 /单行注释 /* 多行注释 */第11页/共44页12标识符 正确: a hello this_is_valid Color Color1 _Color1 错误: 1testthis is invalid $test If 关键字见课本P77第12页/共44页13 所谓常量,就是在程序的运行过程中其值不能被改变的量。常量的类型也可以是任何一种C#的数据类型。 常量的定义格式如下: co
6、nst 常量数据类型 常量名常量值;第13页/共44页14变量 所谓变量,就是在程序的运行过程中其值可以被改变的量,变量的类型可以是任何一种C#的数据类型。所有值类型的变量具有实际存在于内存中的值,也就是说当将一个值赋给变量是执行的是值拷贝操作。 变量的定义格式和常量的有些类似,只是没有了const关键字,其定义格式如下: 变量数据类型 变量名;或:变量数据类型 变量名变量值;第14页/共44页15 .Net的类型分为两种,一种是值类型,另一种是引用类型。这两个类型的本质区别,值类型数据是分配在栈中,而引用类型数据分配在堆上。那么如果要把一个值类型数据放到堆上,就需要装箱操作;反之,把一个放在
7、堆上的值类型数据取出来,则需要进行拆箱操作。 例:int i =123; object o = i;/装箱 int j = (int)o;/拆箱 第15页/共44页16第16页/共44页17运算符 算术运算符 加+ 减- 乘* 除/ 取余% 自加+ 自减- 位逻辑运算符 按位与& 按位或| 按位取反 按位异或 第17页/共44页18运算符 逻辑运算符 逻辑与& 逻辑或| 逻辑非! 条件运算符?: 操作数1?操作数2:操作数3第18页/共44页19运算符 关系运算符 等于= = 不等于! = 小于 小于等于= 对象创建运算符 例:Class1 obj=new Class1()第1
8、9页/共44页20运算符的优先级第20页/共44页21C#程序结构 顺序结构 选择结构 循环结构第21页/共44页22分支语句if 语句if(表达式) 代码1; else 代码2; switch语句 switch(表达式) case 常量1: 语句1; break; default: 语句n; break;第22页/共44页23循环语句 for循环for(for-initializer;for-condition;for-iterator) 语句块; while循环 while(条件表达式)语句块; do循环 do语句块; while(条件表达式); foreach循环 foreach(类型
9、变量名 in 数组名/集合名) 语句块; 第23页/共44页24foreach语句的用法int odd=0,even=0;int arr=0,1,2,3,7,23,40;foreach (int i in arr) if(i%2=0) even+; else odd+;Console.WriteLine(“奇数的个数为:0,偶数的个数为:1”,odd,even);第24页/共44页25跳转语句 break语句 :终止并跳出循环 continue语句 :终止当前的循环,重新开始一个 新的循环 goto语句:跳转到指定的位置(建议不要使用) return语句:跳出循环,将控制权返回给包含该retu
10、rn语句的函数成员的调用程序。 throw语句:抛出一个异常第25页/共44页26异常处理语句 异常是程序执行时遇到的任何错误情况或意外行为。 以下这些情况都可以引发异常: 用户错误的输入 内存不够、网络资源不可用 磁盘出错、数据库无法使用等 每种语言都使用 Try/Catch/Finally 形式的结构化异常处理。 将可能引发异常的代码节放在Try块中 将处理异常的代码放在Catch块中。 Finally块总是执行,不论是否有异常发生。第26页/共44页27异常处理语句流程try /执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 catc
11、h /除非try里面执行代码发生了异常,否则这里的代码不会执行 finally /不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally 第27页/共44页28示例:处理除数为0的异常using System;namespace yichang class Class1 static void Main(string args) try第28页/共44页29 Console.WriteLine(“请输入除数!”); int i=int.Parse(Console.Readline(); Console.Wri
12、teLine(“1000除以0=1”,i,1000/i);catch(DivideByZeroException e) Console.WriteLine(“除以0异常0”,e);Console.Read();第29页/共44页30定义类 C#中提供了很多标准的类,用户在开发过程中可以使用这些类,这样大大节省了程序的开发时间。 类的定义方法如下: 类修饰符 class 类名:父类名 成员修饰符 类的成员变量或者成员函数; ;第30页/共44页31类修饰符第31页/共44页32类的成员 变量成员:不以函数形式体现 常量 变量 事件 类型 函数成员:以函数形式体现 方法 属性 索引指示器 运算符
13、构造函数 析构函数第32页/共44页33成员修饰符第33页/共44页34类的定义示例class ClassA / 定义类ClassA public int a; /声明变量成员 private int b; protected int c; public void SetA() /声明函数成员 a=1; b=2; c=3; 第34页/共44页35对象的创建 类定义后,需要通过new运算符来创建类的实例即对象。 创建对象的格式: 类名 实例名=new 类名(参数列表) new运算符的作用是调用类的构造函数来完成对象的初始化工作。如: ClassA c1=new ClassA();第35页/共44
14、页36构造函数 构造函数是当类被实例化时首先执行的函数,就是new关键字后面的函数。 当创建一个对象时,系统首先给对象分配合适的内存空间,随后系统就自动调用对象的构造函数。因此构造函数是对象执行的入口函数,非常的重要。 如果要定义构造函数,那么构造函数的函数名必须和类名一样。 构造函数示例见P104-105第36页/共44页37析构函数 析构函数是当实例对象从内存中删除前最后执行的函数。 析构函数在类撤销时运行,常用来处理类用完后的收尾工作。 析构函数不能带有参数,也不能被继承,不能拥有访问修饰符。 定义形式:class MyClass MyClass() /收尾工作 第37页/共44页38类
15、的静态成员 类有两种成员:静态成员和实例成员。 静态成员是用static声明的成员,实例成员是没有用static声明的成员。 静态成员是在编译阶段分配存储单元,它对所有类的实例是共享的。静态成员通过类名来调用(类名.成员)。 实例成员是在程序执行过程中创建该类的实例时分配存储单元的,它通过类的实例来调用的(对象名.成员)。第38页/共44页39封装性 封装是隐藏属性、方法或实现的详细信息的处理方式。 封装性是指把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了。 封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节。 第39页/共44页40继承性 继承就是一个类在另一个
16、类的基础上创建。 子类可以继承父类的所有非private成员,还可以再定义自己的新成员。 继承性使得软件模块可以最大限度地复用,并且编程人员还可以对已有的模块进行扩充,而不需要修改原来的源代码,大大提高了软件的开发效率。 在定义类的时候可以指定要继承的类: 类修饰符 class 类名:父类名 成员修饰符 类的成员变量或者成员函数; ; 第40页/共44页41示例:继承的使用class Parents /定义一个基类 private int n1=1; /私有成员不能被继承 public int n2=2; protected int n3=3; internal int n4=4;第41页/共44页42class Child:Parents /定义一个派生类继承基类 private string s=“类的继承”; /定义新的变量成员s public void Print() /定义新的函数成员Print /在派生类中继承来的成员和自已新定义的成员一样使用 Console.Write(“0,1,2,3”,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论