C#面向对象课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C#面向对象课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 面向 对象 课件
- 资源描述:
-
1、面向对象面向对象1Microsoft.NET介绍介绍微软的微软的.NET历史历史2000年微软公司向全球宣布其革命性的软件和服务平年微软公司向全球宣布其革命性的软件和服务平台:台:Microsoft.NET 2001年发布了年发布了.NET Framework1.0版版经历经历5个版本个版本1.0、1.1、2.0、3.0、3.5Microsoft.NET介绍介绍支持多种终端平台支持多种终端平台信息互联互通信息互联互通Web服务:服务:Passport,MSN在线游戏在线游戏Live服务服务任何时候、任何地方、利用任何工具都可以获得网络上的信息,任何时候、任何地方、利用任何工具都可以获得网络上的
2、信息,并享受网络通信所带来的快乐并享受网络通信所带来的快乐 .NET战略对微软的影响战略对微软的影响2003200420032004年间,年间,全球全球100100强强和财富和财富100100强加起来的共强加起来的共166166个公司个公司微软发布微软发布.NET前后的营业额前后的营业额Microsoft.NET介绍介绍为什么需要为什么需要.NET框架框架不同平台(不同平台(PDA、PC、游戏机)的程序如何在、游戏机)的程序如何在.NET环境环境下运行?下运行?使用使用C#的程序可以调用的程序可以调用VB.NET开发的程序吗?开发的程序吗?.NET 框架概述框架概述.NET框架框架.NET战略
3、的基础框架战略的基础框架便捷的开发平台便捷的开发平台强大的类库强大的类库.NET程序的运行环境程序的运行环境.NET框架框架 公共语言运行时公共语言运行时 框架类库框架类库 两个主要组件两个主要组件.NET框架的魅力框架的魅力面向对象编程面向对象编程提高软件可复用、可扩展、易维护性、灵活性提高软件可复用、可扩展、易维护性、灵活性强大的动态强大的动态Web支持支持Web服务服务Passport服务服务MSN,Hotmail都通过都通过Passport Web服务验证服务验证世界级开发工具世界级开发工具Visual Studio 2005框架体系结构框架体系结构.NET框架的核心框架的核心操作系统
4、公共语言运行库(CLR).NET Framework 类库(FCL)框架组件框架组件基本框架类基本框架类.NET Framework.NET Framework 类库类库ASP.NETCLSCLRCTS无论是无论是WinForms和和ASP.NET都都可以使用可以使用ADO.NET与基类库与基类库公共语言运行时公共语言运行时CLR 称为公共语言运行时称为公共语言运行时C#VB.NET 代码被执行代码被执行 MSIL CLR通用语法,计通用语法,计算机不用了解算机不用了解CLR执行执行IL C#编译器编译器VB.NET编译器编译器公共语言运行时公共语言运行时CTS和和CLS是是CLR的子集的子集
5、CTS(通用类型系统)定义了在(通用类型系统)定义了在IL中的的数据类型中的的数据类型VB.NET的的Integer和和C#的的int型都被编译成型都被编译成Int32CLS(公共语言规范)(公共语言规范)CLR支持的语言功能的子集,包支持的语言功能的子集,包括几种面向对象的编程语言的通用功能括几种面向对象的编程语言的通用功能 框架类库框架类库提供对系统功能的访问提供对系统功能的访问建立建立.NET应用程序,组件和控件的基础应用程序,组件和控件的基础庞大的类库数量庞大的类库数量170多个命名空间,上千个类多个命名空间,上千个类功能齐全,方便使用功能齐全,方便使用对文件的基本操作对文件的基本操作
6、对网络的访问对网络的访问安全控制安全控制对图形的操作对图形的操作.NET平台全新的语言平台全新的语言配合革命性平台,诞生了配合革命性平台,诞生了C#C#之父之父 Anders Hejlsberg曾工作于曾工作于 Borland 公司公司Pascal 和和 Delphi 之父之父1996年赴微软,当时年薪年赴微软,当时年薪 300W$.NET平台全新的语言平台全新的语言C#是一种简单、现代、面向对象编程语言是一种简单、现代、面向对象编程语言目前经历了三个版本目前经历了三个版本1.0、2.0、3.0我们学习的是我们学习的是2.0、3.0Anders自定义命名空间自定义命名空间如果在一个项目中,编写
7、了两个功能不同但名字相同的类,如果在一个项目中,编写了两个功能不同但名字相同的类,就会发生冲突,如何解决冲突?就会发生冲突,如何解决冲突?重新命名类名重新命名类名 namespace MySchool public class Student namespace YourSchool public class Student 不同的命名空间不同的命名空间 使用命名空间使用命名空间 嵌套命名空间嵌套命名空间回顾:命名空间用于组织相关类和其他类型回顾:命名空间用于组织相关类和其他类型 与与Java的的package相似相似嵌套命名空间嵌套命名空间namespace City namespace M
8、ySchool namespace Class class Student /此处编写代码此处编写代码 引用命名空间:引用命名空间:using City.MySchool.Class;使用别名使用别名如果命名空间的名字非常的长如果命名空间的名字非常的长给这个嵌套的命名空间指定一个简洁的名字给这个嵌套的命名空间指定一个简洁的名字 City.MySchool.Classusing user=City.MySchool.Class;/namespace MySchool class Student user.Student stu=new user.Student();别名别名 使用别名使用别名 对
9、象对象对象是人们要进行研究的任何事物对象是人们要进行研究的任何事物 颜色:灰色颜色:灰色排量:排量:3.0 3.0 刹车刹车产地:德国产地:德国行驶行驶名字:保时捷名字:保时捷行为行为状态状态颜色:红色颜色:红色排量:排量:4.04.0刹车刹车产地:意大利产地:意大利行驶行驶名字:法拉利名字:法拉利行为行为状态状态 回顾回顾Java的对象,描述汽车的特征和行为的对象,描述汽车的特征和行为 有各自不同有各自不同的状态的状态类和对象类和对象小汽车小汽车颜色:灰色颜色:灰色排量:排量:3.0 刹车刹车产地:德国产地:德国行驶行驶名字:保时捷名字:保时捷行为行为状态状态类的实例化,是类的实例化,是由类
10、具体化对象由类具体化对象类类产地产地 车体颜色车体颜色 行驶行驶 刹车刹车 归纳一组相似对归纳一组相似对象的共性象的共性对象对象属性属性方法方法类描述一组相似对象的共性类描述一组相似对象的共性类和对象的应用类和对象的应用类和对象的简单应用类和对象的简单应用/Car ferrari =New Car();ferrari.Run();/类类对象对象实例化对象实例化对象 调用方法调用方法 public class Student int age=26;/姓名姓名 private string name;public string Name get return name;set name=value
11、;/问候问候 public void SayHi()类和类的成员类和类的成员类的成员类的成员字段字段 属性属性 方法方法 类名类名 自定义一个类自定义一个类class DBHelper /数据库连接字符串数据库连接字符串 private static string connString=;/数据库连接数据库连接 Connection 对象对象 public static SqlConnection connection=new SqlConnection(connString);访问修饰符访问修饰符私有私有 公有公有 公有成员和私有成员公有成员和私有成员class student privat
12、e string name;/姓名姓名 public int age;/年龄年龄 public string idNumber;/身份证号身份证号static void Main(string args)student myStudent=new student();myStudent.name=张三张三;myStudent.age=20;私有成员私有成员 公有成员公有成员 实例化一个对象实例化一个对象 可以访问可以访问 无法访问编译错误无法访问编译错误 数据安全数据安全static void Main(string args)student myStudent=new student();m
13、yStudent.age=-2;myStudent.idNumber=123456;非法数据非法数据 身份证号不能被修改身份证号不能被修改 无法获得数据无法获得数据 无法正常赋值无法正常赋值 有时候将类中有时候将类中的字段公开是的字段公开是不安全的不安全的如果设为私有成员如果设为私有成员能否对这些字段进行规则约束或者只读呢?能否对这些字段进行规则约束或者只读呢?在类中使用属性在类中使用属性private int age;/年龄年龄public int Age get return age;set if(value 0&value 0&value 50&score 60)Console.Writ
14、eLine(你的成绩在你的成绩在50-60之间,可以加分。之间,可以加分。);score=60;scoreResult=score;都可以输出结果都可以输出结果 ref侧重修改,侧重修改,out侧重输出侧重输出 不能写成不能写成AddScore(out int scoreResult)方法的使用方法的使用实现两个整型的加法实现两个整型的加法class Add public int Sum(int para1,int para2)return para1+para2;Add myAdd=new Add();int sum=myAdd.Sum(2,3);使用方法使用方法实例化一个对象实例化一个对象
15、 返回结果返回结果 调用方法调用方法 静态方法静态方法class mySwap public static void S int num1,ref int num2)int temp;temp=num1;num1=num2;num2=temp;class Program static void Main(string args)int num1=5,num2=10;myS(ref num1,ref num2);回顾一下,回顾一下,Swap方法在另一类中如何调用?方法在另一类中如何调用?静态方法使用类名调用静态方法使用类名调用静态方法静态方法 静态方法和实例方法静态方法和实例方法使用使用stat
16、ic修饰的方法称为静态方法修饰的方法称为静态方法使用实例对象调用的方法叫做实例方法使用实例对象调用的方法叫做实例方法静态方法静态方法实例方法实例方法static 关键字关键字不需要不需要static关键字关键字使用类名调用使用类名调用使用实例对象调用使用实例对象调用可以访问静态成员可以访问静态成员可以直接访问静态成员可以直接访问静态成员不可以直接访问实例成员不可以直接访问实例成员可以直接访问实例成员可以直接访问实例成员不能直接调用实例方法不能直接调用实例方法可以直接访问实例方法、静态方法可以直接访问实例方法、静态方法调用前初始化调用前初始化实例化对象时初始化实例化对象时初始化为什么要重载为什么
17、要重载 public int Sum(int para1,int para2)return para1+para2;整型参数,整型参数,返回值整型返回值整型如果想让两个如果想让两个string型、两个型、两个double型相加,怎么做?型相加,怎么做?编写两个不同名字的方法,这样我们在进行调用时编写两个不同名字的方法,这样我们在进行调用时要先判断是什么类型,能否不判断直接就能相加呢?要先判断是什么类型,能否不判断直接就能相加呢?方法的重载方法的重载同一个类中添加几个名字相同,参数与返回值不同的方法同一个类中添加几个名字相同,参数与返回值不同的方法 public string Sum(strin
18、g para1,string para2)return para1+para2;public double Sum(double para1,double para2)return para1+para2;调用时只要传递参数即可,无需判断类型调用时只要传递参数即可,无需判断类型 class Add public string Sum(string para1,string para2)public int Sum(int para1,int para2)重载的方式重载的方式基于不同类型参数的重载基于不同类型参数的重载 class Add public int Sum(int para1,int
19、 para2)public int Sum(int para1,int para2,int para3)相同类型不同参数个数的重载相同类型不同参数个数的重载 不允许重载方法仅仅是返回值不同不允许重载方法仅仅是返回值不同 Student zhang=new Student();zhang.Name=张靓靓张靓靓;zhang.Age=20;zhang.Hobby=唱歌歌唱歌歌;一种特别的方法一种特别的方法班级来了新学员班级来了新学员添加学员对象添加学员对象学员类实例化对象、学员类实例化对象、设置属性设置属性初始属性若太多,初始属性若太多,设置麻烦设置麻烦能否在实例化时设置能否在实例化时设置属性?属
20、性?public Student(string name,int age,string hobby)this.Name=name;this.Age=age;this.Hobby=hobby;Student zhang=new Student(张靓靓张靓靓,20,唱歌歌唱歌歌);一次设置完成一次设置完成类中加入这类中加入这个方法个方法添加的方法叫做添加的方法叫做构造函数构造函数构造函数构造函数是类中的一种特殊的方法是类中的一种特殊的方法构造函数名与类名相同,不返回任何值构造函数名与类名相同,不返回任何值可初始化成员变量可初始化成员变量class Student public Student(st
21、ring name,int age,string hobby)this.Name=name;this.Age=age;this.Hobby=hobby;初始化成员变量初始化成员变量 this 关键字引用类的当前实例关键字引用类的当前实例 将参数的值,分别赋将参数的值,分别赋给当前实例的属性给当前实例的属性使用构造函数使用构造函数new 关键字关键字可以实例化一个新的对象可以实例化一个新的对象指定对某个带参数的构造函数指定对某个带参数的构造函数 Student zhang=new Student(张靓靓张靓靓,20,唱歌歌唱歌歌);每次创建类的实例都会调用此方法每次创建类的实例都会调用此方法实例
22、化对象调用实例化对象调用构造函数构造函数 使用使用 new 关键字关键字 Student scofield=new Student();Student zhang=new Student(张靓靓张靓靓,20,唱歌歌唱歌歌);实例化一个对象实例化一个对象 实例化一个新对象实例化一个新对象 public Student()public Student(string name,int age,string hobby)this.name=name;this.age=age;this.hobby=hobby;构造函数的重载构造函数的重载构造函数也可以重载构造函数也可以重载Student scofiel
23、d=new Student();Student zhang=new Student(张靓靓张靓靓,20,唱歌歌唱歌歌);方法名相同,方法名相同,参数不同参数不同private int a;public int Aget return a;set a=value;你喜欢读哪段代码?你喜欢读哪段代码?合格的程序要符合编码规则合格的程序要符合编码规则直观易于理解、有意义的单词直观易于理解、有意义的单词 方便维护方便维护有利于调试有利于调试编码规则的必要性编码规则的必要性如如name,age,student private int name;public int Name get return nam
24、e;set name=value;无法理解无法理解是什么是什么 为什么使用常量为什么使用常量public class Compute double pi=3.14;/计算圆的周长计算圆的周长 public double Perimeter(double radius)return 2*pi*radius;/计算圆的面积计算圆的面积 public double Area(double radius)return pi*radius*radius;这个类中,会反这个类中,会反复使用复使用pi 如果如果pi在类中被修改了,计算结果错误在类中被修改了,计算结果错误 如何避免如何避免pi在类中被修改在类
25、中被修改?常量常量常量在使用过程中值不会发生变化常量在使用过程中值不会发生变化常量程序中反复使用常量程序中反复使用const 类型类型 常量名常量名=常量值常量值 程序中不会被改程序中不会被改变变static void Main(string args)const int PI=3.14;PI=3.20;强制赋值会发生错误强制赋值会发生错误常量名通常使常量名通常使用大写用大写 随意赋值的危险随意赋值的危险const string GENDER_M=男男;const string GENDER_F=女女;/性别性别private string gender;public string Gende
展开阅读全文