![面向对象设基础_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/a7e293fa-43ab-4125-86cf-66499328f8ed/a7e293fa-43ab-4125-86cf-66499328f8ed1.gif)
![面向对象设基础_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/a7e293fa-43ab-4125-86cf-66499328f8ed/a7e293fa-43ab-4125-86cf-66499328f8ed2.gif)
![面向对象设基础_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/a7e293fa-43ab-4125-86cf-66499328f8ed/a7e293fa-43ab-4125-86cf-66499328f8ed3.gif)
![面向对象设基础_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/a7e293fa-43ab-4125-86cf-66499328f8ed/a7e293fa-43ab-4125-86cf-66499328f8ed4.gif)
![面向对象设基础_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/a7e293fa-43ab-4125-86cf-66499328f8ed/a7e293fa-43ab-4125-86cf-66499328f8ed5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一篇第一篇 .net .net 基础基础东鹏信息电子有限公司东鹏信息电子有限公司2内容内容 第第 1 1 章章 认识认识 asp.netasp.net第第 2 2 章章 c# 3.0 c# 3.0 程序设计基础程序设计基础 第第 3 3 章章 面向对象设计基础面向对象设计基础第第 4 4 章章 asp.net asp.net 的网页代码模型及生命周期的网页代码模型及生命周期3第第 3 3 章章 面向对象设计基础面向对象设计基础主讲:主讲:jayce_zoujayce_zou4本章内容本章内容 主讲:主讲:jayce_zoujayce_zou面向对象的概念面向对象的概念类的封装类的封装 继承、
2、多态继承、多态 设计模式设计模式5面向过程面向过程 主讲:主讲:jayce_zoujayce_zou 在传统应用程序开发领域(如在传统应用程序开发领域(如 c c 语言的开发),或者是早期的基于语言的开发),或者是早期的基于 b/s b/s 领域的领域的 web web 应用程序开发(如应用程序开发(如 aspasp)都使用的是传统的面向过程的开发语言。)都使用的是传统的面向过程的开发语言。面向过程的一段面向过程的一段 c c 语言代码如下所示。语言代码如下所示。main() sum(x,y); get(x,y); print(x); print(y);面向过程的思想决定了其没有派生、覆盖、继
3、承等特性,所以每当创建一个新的面向过程的思想决定了其没有派生、覆盖、继承等特性,所以每当创建一个新的“对象对象”时,就有可能需要编写更多的代码,这在一定程度上造成了代码的编写时,就有可能需要编写更多的代码,这在一定程度上造成了代码的编写和维护的困难。和维护的困难。 6面向对象编程面向对象编程 主讲:主讲:jayce_zoujayce_zou oop旨在在计算机程序中模拟现实世界中的概念在 oop 中,现实世界的所有事物全都被视为对象能够在计算机程序中用类似的实体模拟现实世界中的实体设计和实现软件系统的方法7 主讲:主讲:jayce_zoujayce_zou class program clas
4、s program /主程序类主程序类 public int sum(int x, int y) public int sum(int x, int y) /sum /sum 方法方法 return x + y; return x + y; /返回值返回值 static void main(string args) static void main(string args) /静态方法静态方法 int x = 1, y = 2; int x = 1, y = 2; /声明整型变量声明整型变量program sum = new program(); program sum = new progr
5、am(); /创建对象创建对象console.writeline(sum.sum(x, y); console.writeline(sum.sum(x, y); /输出方法返回值输出方法返回值 8面向组件面向组件 主讲:主讲:jayce_zoujayce_zou 面向组件其实是面向对象的另一种加强。面向组件其实是面向对象的另一种加强。使用了分层的概念,将代码封装在一个类,然后通过编译器对类或类使用了分层的概念,将代码封装在一个类,然后通过编译器对类或类库进行编译,形成库进行编译,形成 dlldll组件,在应用程序中使用组件,在应用程序中使用 dlldll,从而提高了代,从而提高了代码的重用性。
6、码的重用性。分层的概念也是设计模式的开端。分层的概念也是设计模式的开端。面向组件的概念在平时就已经被读者广泛使用了,例如面向组件的概念在平时就已经被读者广泛使用了,例如.net.net中的某些中的某些类库,还有类库,还有comcom组件等。面向组件的概念对开发人员在设计的思想上组件等。面向组件的概念对开发人员在设计的思想上要求更高,这些要求不仅仅局限于编码。要求更高,这些要求不仅仅局限于编码。9对象对象 主讲:主讲:jayce_zoujayce_zou 对对 象象面向对象编程的核心为计算机应用程序提供实用基础完成特定任务表示现实世界中的实体“对象是存在的具体实体,具有明确定义的状态和行为。对象
7、是存在的具体实体,具有明确定义的状态和行为。”10创建一个类和其方法创建一个类和其方法 主讲:主讲:jayce_zoujayce_zou 11类成员类成员 主讲:主讲:jayce_zoujayce_zou class animalclass animal public string color; public string color; /声明颜色字段声明颜色字段public bool havefeather; public bool havefeather; /声明是否含有羽毛字段声明是否含有羽毛字段public int age; public int age; /年龄字段年龄字段 成员的访
8、问:成员的访问:animal bird = new animal(); animal bird = new animal(); /创建对象创建对象bird.havefeather = true; bird.havefeather = true; /鸟有羽毛鸟有羽毛bird.color = black; bird.color = black; 12访问器访问器 主讲:主讲:jayce_zoujayce_zou vs 2005vs 2005的定义方法的定义方法public class animalpublic class animal private int _age; private int _
9、age; /定义私有变量定义私有变量public int age get return _age; set _age = value; public int age get return _age; set _age = value; /赋值属性赋值属性 vs 2008 & vs 2010 vs 2008 & vs 2010 的定义方法的定义方法public class animal public class animal /创建类创建类 public int age get; set; public int age get; set; /简便的属性编写简便的属性编写 13方法
10、方法 主讲:主讲:jayce_zoujayce_zou 方法的语法方法的语法: :私有级别私有级别 返回类型返回类型 方法名称方法名称( (参数参数 1 1,参数,参数 2)2) 方法代码块。方法代码块。 示例代码示例代码: : public int sum(int number1, int number2) public int sum(int number1, int number2) /必须返回必须返回 int int 类型的值类型的值 return number1 + number2; return number1 + number2; /返回一个返回一个 int int 类型的值类型
11、的值 public void newsum(int number1, int number2) public void newsum(int number1, int number2) /void /void 表示无返回值表示无返回值 int sum = number1 + number2; int sum = number1 + number2; /没有返回值则不能返回值没有返回值则不能返回值 14构造函数和析构函数构造函数和析构函数 主讲:主讲:jayce_zoujayce_zou 构造函数在对象初始化时被执行构造函数在对象初始化时被执行析构函数在对象被销毁时被执行析构函数在对象被销毁时被
12、执行c#c#应用程序能够提供默认的构造函数和析构函数应用程序能够提供默认的构造函数和析构函数 15构造函数示例构造函数示例 主讲:主讲:jayce_zoujayce_zou public class animal public class animal / /创建一个类创建一个类 public string animalname; public string animalname; /创建创建 animalname animalname 名称字段名称字段public animal() public animal() / /无参数的构造函数无参数的构造函数 nimalname = nimalna
13、me = 动物动物; ; /赋值私有变量赋值私有变量 public animal(string name) public animal(string name) /有参数的构造函数有参数的构造函数 animalname = name; animalname = name; /私有变量获取传递的参数私有变量获取传递的参数 animal dog = new animal(animal dog = new animal(狗狗); ); /通过构造函数创建对象通过构造函数创建对象console.writeline(dog.animalname); console.writeline(dog.anima
14、lname); /输出对象的属性输出对象的属性16析构函数示例析构函数示例 主讲:主讲:jayce_zoujayce_zou public class animal public class animal / /创建类创建类 public string animalname; /public string animalname; /创建创建 animalname animalname 名称字段名称字段animal() animal() /使用析构函数使用析构函数 animalname = string.empty; animalname = string.empty; /将字符串清空将字符串清
15、空 17访问修饰符访问修饰符 主讲:主讲:jayce_zoujayce_zou public public 共有权限共有权限 public public 字段具有最高访问级别,任何它的对象或者其他的类都能对字段具有最高访问级别,任何它的对象或者其他的类都能对 public public 关键字所修饰的类或类成员进行访问。关键字所修饰的类或类成员进行访问。 private private 私有权限私有权限 private private 字段具有最低的访问级别,它能够保证类和类成员的安全,却限字段具有最低的访问级别,它能够保证类和类成员的安全,却限制了其他类或对象对它的访问。私有成员只有在声明他
16、们的类之后才能访制了其他类或对象对它的访问。私有成员只有在声明他们的类之后才能访问。问。 protected protected 保护权限保护权限 protected protected 字段具有保护类中字段的功能,能够保证类和类成员的安全性,字段具有保护类中字段的功能,能够保证类和类成员的安全性,也能够限制其他类或对象对它的访问。也能够限制其他类或对象对它的访问。 internal internal 程序集保护权限程序集保护权限 internal internal 字段修饰的类或类成员只有在同一程序集的文件中内部类型或字段修饰的类或类成员只有在同一程序集的文件中内部类型或成员才可以访问成员才
17、可以访问。18.net .net 的垃圾回收机制的垃圾回收机制 主讲:主讲:jayce_zoujayce_zou 当创建一个对象,当创建一个对象,.net .net 对该对象初始化并在内存相应位置存储,当对该对象初始化并在内存相应位置存储,当一个对象执行析构函数时,该对象被销毁并释放相关资源。在一个对象执行析构函数时,该对象被销毁并释放相关资源。在.net .net 中,由于使用了垃圾回收机制(中,由于使用了垃圾回收机制(gcgc)从而导致开发人员无法控制析构)从而导致开发人员无法控制析构函数是何时被运行的。函数是何时被运行的。垃圾回收机制监视对象的生存周期,当一个对象没有被任何应用程序垃圾回
18、收机制监视对象的生存周期,当一个对象没有被任何应用程序引用时,垃圾回收器就释放对象所占的内存以及资源。引用时,垃圾回收器就释放对象所占的内存以及资源。垃圾回收机器没有固定的工作模式。它的工作间隔是不可预期的,一垃圾回收机器没有固定的工作模式。它的工作间隔是不可预期的,一般情况下,当应用程序占用的内存不足的时候会启用垃圾回收器释放般情况下,当应用程序占用的内存不足的时候会启用垃圾回收器释放未被引用的对象的资源。未被引用的对象的资源。在在 asp.net asp.net 或者或者 winform winform 开发中,显式的使用开发中,显式的使用 dispose dispose 方法能够方法能够
19、提高应用程序的性能。同样,析构函数也是一种清理资源的方法,在提高应用程序的性能。同样,析构函数也是一种清理资源的方法,在对象析构时,可以用对象析构时,可以用 dispose dispose 对对象的资源,以及连接信息进行清对对象的资源,以及连接信息进行清空从而对对象进行释放。空从而对对象进行释放。19命名空间命名空间 主讲:主讲:jayce_zoujayce_zou 为什么要使用命名空间?为什么要使用命名空间? 某个学校有两个班级,每个班级里都有一个叫小明的人。如果在早操大会上点名小某个学校有两个班级,每个班级里都有一个叫小明的人。如果在早操大会上点名小明,那么这两明,那么这两 个小明都不知道
20、点的是谁,如果指定一下,说是一班的小明,那么个小明都不知道点的是谁,如果指定一下,说是一班的小明,那么二班的小明就不会认为是自己了。命名二班的小明就不会认为是自己了。命名 空间就起到了这个区分的作用空间就起到了这个区分的作用 创建命名空间创建命名空间 namespace namespace 命名空间命名空间 类以及类成员类以及类成员 引用命名空间引用命名空间 using using 命名空间命名空间20分层设计中使用命名空间分层设计中使用命名空间 主讲:主讲:jayce_zoujayce_zou 创建类库创建类库21 主讲:主讲:jayce_zoujayce_zou 引用类库引用类库代码头部书
21、写代码头部书写 using using 命名空间命名空间则可以使用类库项目的命名空间则可以使用类库项目的命名空间并访问方法和成员,代码:并访问方法和成员,代码:using system;using system;using system.linq;using system.linq;/系统命名空间的使用系统命名空间的使用using system.text; using system.text; /自定义命名空间的使用自定义命名空间的使用using mynamsspace; using mynamsspace; 22给方法传递参数给方法传递参数 主讲:主讲:jayce_zoujayce_zou
22、传递值传递值 方法可以接收传递的值,并获取参数。方法可以接收传递的值,并获取参数。 program pro = new program(); program pro = new program(); /创建一个新对象创建一个新对象pro.getusername(guojing); pro.getusername(guojing); /传递了一个值传递了一个值传递对象传递对象 方法也可以接收对象,对象也可以看作是一个变量进行参数传递。方法也可以接收对象,对象也可以看作是一个变量进行参数传递。 program pro = new program();program pro = new progra
23、m();=”guojing” =”guojing” /初始化字段初始化字段pro.getusername(pro); pro.getusername(pro); /传递了一个对象传递了一个对象23使使用用 ref ref 关键字关键字 主讲:主讲:jayce_zoujayce_zou class carclass car string carnumber=“1001”; string carnumber=“1001”; /声明字符串变量声明字符串变量 string cartype = “car”; string cartype = “car”; /声明字符串变量
24、声明字符串变量 public string getcarnum(ref string num,ref string type) public string getcarnum(ref string num,ref string type) /使用使用 ref ref 关键关键字字 num = carnumber; num = carnumber; /获取私有变量的值获取私有变量的值type = cartype; type = cartype; /获取私有变量的值获取私有变量的值return num; return num; /返回字符串变量返回字符串变量 static void main(st
25、ring args) static void main(string args) /程序的主入口方法程序的主入口方法 car mycar = new car(); car mycar = new car(); /创建一个新对象创建一个新对象string number=0; string number=0; /将将 number number 赋值为赋值为 0 0 string type = string.empty; string type = string.empty; /将将 type type 赋值为空赋值为空mycar.getcarnum(ref number,ref type); m
26、ycar.getcarnum(ref number,ref type); /使用使用 ref ref 关键字关键字console.writeline(number); console.writeline(number); /输出字段输出字段console.writeline(type); console.writeline(type); /输出字段输出字段 24方法的重载方法的重载 主讲:主讲:jayce_zoujayce_zou 设计一些相同的方法时,如果只是参数不同,则使用重载。设计一些相同的方法时,如果只是参数不同,则使用重载。 如果为程序添加一个新功能,重载一个方法是不错的选择。如果为
27、程序添加一个新功能,重载一个方法是不错的选择。 如要实现类中相似的功能,则可以考虑使用重载。如要实现类中相似的功能,则可以考虑使用重载。 public void getuserinfor(string name) public void getuserinfor(string name) /一个方法一个方法 /通过用户名获取用户信息通过用户名获取用户信息 public void getuserinforbyid(int id) public void getuserinforbyid(int id) /重载方法重载方法 /通过通过 id id 获取用户信息获取用户信息 25封装封装 主讲:主讲
28、:jayce_zoujayce_zou 在在 c#c#中,封装就是将类成员中的字段、方法以及属性事件等放在一个公共中,封装就是将类成员中的字段、方法以及属性事件等放在一个公共的结构中的结构中按照一个公共的方法把数据和操作这些数据的方法进行组装(封装),同时按照一个公共的方法把数据和操作这些数据的方法进行组装(封装),同时为对象指定操作和属性,从而创建了新的数据类型提供给用户使用,而保证为对象指定操作和属性,从而创建了新的数据类型提供给用户使用,而保证了私密的内容不会被用户察觉了私密的内容不会被用户察觉在开发时,常常会将类成员中的字段、方法、属性封装在一个类或命名空间在开发时,常常会将类成员中的
29、字段、方法、属性封装在一个类或命名空间内。当把数据和方法封装后,就可以指定方法和属性,对于外部使用者而言内。当把数据和方法封装后,就可以指定方法和属性,对于外部使用者而言,他们无需知道类是怎样设计的,只需要关心如何实现信息,让用户成为类,他们无需知道类是怎样设计的,只需要关心如何实现信息,让用户成为类的使用对象的使用对象方法的内部代码对开发人员是封闭的,保证内部代码的隐私和安全,开发人方法的内部代码对开发人员是封闭的,保证内部代码的隐私和安全,开发人员只需要使用方法或者覆盖方法来达到自己编程的目的员只需要使用方法或者覆盖方法来达到自己编程的目的例如一台电脑有显示器、主机等等外设,而相对于显示器
30、而言,显示器是一例如一台电脑有显示器、主机等等外设,而相对于显示器而言,显示器是一个类,同样,机箱也是一个类,同样这些来还包括鼠标,键盘等。而显示器个类,同样,机箱也是一个类,同样这些来还包括鼠标,键盘等。而显示器内部和机箱内部对一般内部和机箱内部对一般 的用户是不可见的,因为用户不知道怎样拆装显示的用户是不可见的,因为用户不知道怎样拆装显示器和机箱,但是用户知道怎样将插座相连,组成一个完整的计算机。封装能器和机箱,但是用户知道怎样将插座相连,组成一个完整的计算机。封装能够让用户更加关注够让用户更加关注“计算机计算机”本身,而不去关注本身,而不去关注“计算机计算机”内部是怎样实现内部是怎样实现
31、的。的。26继承继承 主讲:主讲:jayce_zoujayce_zou 在类的设计中,经常需要管理和开发相似功能。在设计这些类的时候在类的设计中,经常需要管理和开发相似功能。在设计这些类的时候,就可以使用继承的原则。,就可以使用继承的原则。在面向对象的应用程序开发中,允许创建一个抽象的类而不实现其具在面向对象的应用程序开发中,允许创建一个抽象的类而不实现其具体方法,而需要通过继承、派生来实现方法。体方法,而需要通过继承、派生来实现方法。这样不仅优化了代码,提高了代码的可读性,而且在开发过程中,也这样不仅优化了代码,提高了代码的可读性,而且在开发过程中,也让开发人员有比较明确的编码思想。让开发人
32、员有比较明确的编码思想。例如,要开发一个应用程序或者网站来统计全球动物的种类和基本信例如,要开发一个应用程序或者网站来统计全球动物的种类和基本信息的时候,就需要创建一些类,比如息的时候,就需要创建一些类,比如 人类、猫、狗等等。相比之下人类、猫、狗等等。相比之下,人类和猫和狗有相似之处,如它们都是哺乳动物,说的更高一点,人类和猫和狗有相似之处,如它们都是哺乳动物,说的更高一点,就都是就都是 生物。而人,猫和狗却是不同的对象,还必须要区分三者之生物。而人,猫和狗却是不同的对象,还必须要区分三者之间的关系。间的关系。 27一个示例一个示例 主讲:主讲:jayce_zoujayce_zou publ
33、ic class animal public class animal /编写类编写类 public string type; public string type; /动物的种类动物的种类 public string color; public string color; /动物的颜色动物的颜色 public string sound; public string sound; /动物叫的声音动物叫的声音 class program class program /应用程序主类应用程序主类 static void main(string args) static void main(strin
34、g args) /应用程序入口方法应用程序入口方法 animal cat = new animal(); animal cat = new animal(); /创建对象创建对象cat.type = cat; cat.type = cat; /猫科动物猫科动物cat.sound = miaomiao; cat.sound = miaomiao; /猫的叫声为猫的叫声为 miaomiaomiaomiaoanimal person = new animal(); animal person = new animal(); /创建对象创建对象person.type = person; person.
35、type = person; /人类人类 28派生类的优点派生类的优点 主讲:主讲:jayce_zoujayce_zou 提高重用性提高重用性提高结构性提高结构性创建派生类创建派生类public class animal public class animal /创建基类创建基类 public string type; public string type; /创建基类成员创建基类成员public string color; public string color; /创建基类成员创建基类成员public string sound; public string sound; /创建基类成员创建
36、基类成员 public class people:animal public class people:animal /创建派生类创建派生类 public string country; public string country; /创建派生类成员创建派生类成员 29抽象类与密封类抽象类与密封类 主讲:主讲:jayce_zoujayce_zou 当声明或者设计一个当声明或者设计一个 类的结构时,基类往往是不完善的,也不应该把基类类的结构时,基类往往是不完善的,也不应该把基类的类成员实例化。的类成员实例化。 这时候我们就要使用到抽象类。这时候我们就要使用到抽象类。public abstract
37、 class animal public abstract class animal /创建抽象类创建抽象类 public animal() public animal() /创建构造函数创建构造函数 出于某种目的,当程序块只需要完成某些特定的功能或者在商出于某种目的,当程序块只需要完成某些特定的功能或者在商 业上为了保业上为了保密,则可以使用密封类对类进行密封,保证类的可靠性。密,则可以使用密封类对类进行密封,保证类的可靠性。public sealed class animal public sealed class animal /创建密封类创建密封类 public animal() pu
38、blic animal() /创建构造函数创建构造函数 注意:设计类的时候,通常情况下是不需要将类设置为密封类的,注意:设计类的时候,通常情况下是不需要将类设置为密封类的,因为密封类会让类的扩展性非常的差,这个类也无法再次扩展和派生。因为密封类会让类的扩展性非常的差,这个类也无法再次扩展和派生。 30多态多态 主讲:主讲:jayce_zoujayce_zou 面向对象应用程序开发中,与传统的面向对象不同的是,面向对象应用程序开发中,与传统的面向对象不同的是,面向对象具有很多的特性让开发变得简单和方便,代码便面向对象具有很多的特性让开发变得简单和方便,代码便于阅读和维护,多态也是其中的重要的特性
39、。于阅读和维护,多态也是其中的重要的特性。多态可以分为两种,分别为动态多态和静态多态。多态可以分为两种,分别为动态多态和静态多态。多态的例子:多态的例子: 方法重载方法重载 抽象方法抽象方法 虚方法虚方法 接口接口 .31抽象方法抽象方法 主讲:主讲:jayce_zoujayce_zou 抽象方法是一个没有对类成员中方法进行具体实现的一种方法,抽象方法的抽象方法是一个没有对类成员中方法进行具体实现的一种方法,抽象方法的实现必须让派生类实现。实现必须让派生类实现。 虽然抽象类中的所有方法不一定全是抽象方法,但是包含抽象方法的类被称虽然抽象类中的所有方法不一定全是抽象方法,但是包含抽象方法的类被称
40、作抽象类。作抽象类。 public abstract class animal public abstract class animal /编写类编写类 public abstract string sound(); public abstract string sound(); /创建抽象方法创建抽象方法 public class people:animal public class people:animal /派生自派生自 animal animal 类类 public string country;public string country;public override string
41、 sound() public override string sound() /实现抽象方法实现抽象方法 return language; return language; /返回值返回值 注意:注意:sound sound 方法是一个抽象方法,在其他派生类中,如猫、狗,都有自己独方法是一个抽象方法,在其他派生类中,如猫、狗,都有自己独特的叫声,而人类使用的特的叫声,而人类使用的 是语言。不同的种别实现的方法千差万别,在基是语言。不同的种别实现的方法千差万别,在基类中规定将属性规定死是非常不明智的做法。类中规定将属性规定死是非常不明智的做法。32虚方法的抽象类虚方法的抽象类 主讲:主讲:ja
42、yce_zoujayce_zou public class animal public class animal /创建类创建类 public virtual string fly() public virtual string fly() /虚方法,飞行方法虚方法,飞行方法 return most of the animal can fly; return most of the animal can fly; /返回值返回值 public class people:animal public class people:animal /创建派生类创建派生类 public string cou
43、ntry; public string country; /没有实现虚方法也可以没有实现虚方法也可以 public class bird : animal public class bird : animal /创建派生类创建派生类 public string fly() public string fly() /鸟儿能飞行,实现一个虚方法鸟儿能飞行,实现一个虚方法 return it can fly; return it can fly; /返回值返回值 33类命名类命名 主讲:主讲:jayce_zoujayce_zou 命名空间的命名原则命名空间的命名原则 当开发人员创建命名空间时,命名空
44、间的名称应该避免与公司名称当开发人员创建命名空间时,命名空间的名称应该避免与公司名称或其他品牌的名称相同,例如为了做或其他品牌的名称相同,例如为了做 office office 开发扩展,可能会命开发扩展,可能会命名为名为 microsoft.officemicrosoft.office,但是此命名空间已经在,但是此命名空间已经在.net .net 框架中被使框架中被使用了,所以编译器会报错。用了,所以编译器会报错。 技巧:尽量使用开发人员开发组或公司的名称作为命名空间,因为技巧:尽量使用开发人员开发组或公司的名称作为命名空间,因为开发组或公司的名称能够表示这个开发组或公司的名称能够表示这个
45、程序或组件是来自哪里。不仅程序或组件是来自哪里。不仅如此,开发组或公司的名称也能在一定程度上避免了重复,例如如此,开发组或公司的名称也能在一定程度上避免了重复,例如 huawei.tcpip.class huawei.tcpip.class 既能表示华为的既能表示华为的 tcp/ip tcp/ip 研发小组,又可以研发小组,又可以很大程度上的避免重复。很大程度上的避免重复。34类命名类命名 主讲:主讲:jayce_zoujayce_zou 类的命名原则类的命名原则 类名尽量使用类名尽量使用 pascal pascal 大写,减少类名称的所写的使用大写,减少类名称的所写的使用量,并且不推荐使用前
46、缀和下划线。正确的类命名如下量,并且不推荐使用前缀和下划线。正确的类命名如下所示。所示。 class systemmessage class systemmessage /良好的命名良好的命名 35类命名类命名 主讲:主讲:jayce_zoujayce_zou 接口的命名原则接口的命名原则 在接口的命名中,接口名前应加上大写字母在接口的命名中,接口名前应加上大写字母“i”i”来表示这来表示这 是一个是一个接口而不是一个类。示例代码如下所示。接口而不是一个类。示例代码如下所示。public interface isystemmessage public interface isystemmess
47、age /良好的接口命名良好的接口命名 void systemoutput(string str);void systemoutput(string str); public interface iusermessage public interface iusermessage /良好的接口命名良好的接口命名 void output(string str);void output(string str); 36类命名类命名 主讲:主讲:jayce_zoujayce_zou 枚举的命名原则枚举的命名原则 枚举的命名同样使用枚举的命名同样使用 pascal 大写。枚举值的名称同样需要使用大写。枚
48、举值的名称同样需要使用 pascal 大写,并同样避免枚举名称中所大写,并同样避免枚举名称中所 写的使用量。枚举的命名写的使用量。枚举的命名不需要加入任何的后缀,示例代码如下所示。不需要加入任何的后缀,示例代码如下所示。public enum filetypepublic enum filetype txt, txt, /定义枚举成员定义枚举成员 txttxtmp3, mp3, /定义枚举成员定义枚举成员 mp3mp3mp4, mp4, /定义枚举成员定义枚举成员 mp4mp4doc, doc, /定义枚举成员定义枚举成员 docdocpdf, pdf, /定义枚举成员定义枚举成员 pdfpd
49、fhtml, html, /定义枚举成员定义枚举成员 htmlhtmlhtm, htm, /定义枚举成员定义枚举成员 htmhtm 37类命名类命名 主讲:主讲:jayce_zoujayce_zou 参数名的命名原则参数名的命名原则 参数名应该具有描述性,即一个参数能够描述当前参数的意义,例参数名应该具有描述性,即一个参数能够描述当前参数的意义,例如如 computeruser computeruser 能够描述一台电脑的使用者,而不应该命名为其能够描述一台电脑的使用者,而不应该命名为其他没有意义的字符,例如他没有意义的字符,例如 abcabc,并推荐使用,并推荐使用 camel camel
50、大写方式命名大写方式命名。参数的命名。参数的命名 应该根据参数的意义来命名,而不是根据参数的种应该根据参数的意义来命名,而不是根据参数的种类,并且不提倡使用保留参数、下划线等。示例代码如下所示:类,并且不提倡使用保留参数、下划线等。示例代码如下所示: public void set(string computeruser) public void set(string computeruser) /参数声明参数声明 38小议设计模式小议设计模式 主讲:主讲:jayce_zoujayce_zou 什么是设计模式?什么是设计模式? 就是一种规范,所谓的设计模式,就是软件设计的一种范例。虽然就是一种规范,所谓的设计模式,就是软件设计的一种范例。虽然定义看上去非常简单,看是实际上初学者是非常难以理解的,设计定义看上去非常简单,看是实际上初学者是非常难以理解的,设计模式是一项长期的学习,需要不停的使用和学习才能掌握。模式是一项长期的学习,需要不停的使用和学习才能掌握。为什么要使用设计模式?为什么要使用设计模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色手绘风年中总结主题
- 咨询能力述职报告模板
- 小学数学兴趣与思维的关联
- 审计学教学设计改革创新培养途径研究论文
- 中止审理 申请书
- 农村改厕申请书
- 三位数除以两位数过关练习试题大全附答案
- 大学生创业项目洗衣店
- 冬季砼路面施工方案
- 100以内加减法竖式计算评价试题模拟题大全附答案
- 深圳建筑工程公司财务管理制度
- 小红书搜索推广营销师认证考试题(附答案)
- 符合TSG07-2019 B级锅炉制造质量手册首版
- 统编版语文三年级下册第三单元综合性学习中华传统节日 活动设计
- 降低顺产产妇产后2小时失血率PDCA成果汇报书
- 现代旅游管理专业群教学资源库可行性建设研究报告
- (2024年更新)国家慢性疾病编码新目录
- 2024年考研(英语一)真题及参考答案
- 工伤保险政策解读
- 安全环保职业健康法律法规清单2024年
- 苜蓿青贮料质量分级DB41-T 1906-2019
评论
0/150
提交评论