软件开发基础NET第3讲.ppt

上传人:b****2 文档编号:2155483 上传时间:2022-10-27 格式:PPT 页数:48 大小:504.50KB
下载 相关 举报
软件开发基础NET第3讲.ppt_第1页
第1页 / 共48页
软件开发基础NET第3讲.ppt_第2页
第2页 / 共48页
软件开发基础NET第3讲.ppt_第3页
第3页 / 共48页
软件开发基础NET第3讲.ppt_第4页
第4页 / 共48页
软件开发基础NET第3讲.ppt_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

软件开发基础NET第3讲.ppt

《软件开发基础NET第3讲.ppt》由会员分享,可在线阅读,更多相关《软件开发基础NET第3讲.ppt(48页珍藏版)》请在冰豆网上搜索。

软件开发基础NET第3讲.ppt

软件开发基础(软件开发基础(.NET)主讲:

邝颖杰主讲:

邝颖杰主讲:

邝颖杰主讲:

邝颖杰电邮:

电邮:

电邮:

电邮:

第一部分第一部分面向对象编程基础面向对象编程基础0、本章掌握内容(、本章掌握内容

(2)(计算机专业)(计算机专业)ll类的继承与多态性(理解)类的继承与多态性(理解)类的继承与多态性(理解)类的继承与多态性(理解)ll接口(理解)接口(理解)接口(理解)接口(理解)ll委托与事件(重点掌握)委托与事件(重点掌握)委托与事件(重点掌握)委托与事件(重点掌握)ll反射、序列化和反序列化(了解)反射、序列化和反序列化(了解)反射、序列化和反序列化(了解)反射、序列化和反序列化(了解)ll推荐书目:

推荐书目:

推荐书目:

推荐书目:

C+PrimerC+Primer(第四版,中文版)(第四版,中文版)(第四版,中文版)(第四版,中文版)1、面向对象基本概念、面向对象基本概念ll面向对象是一种面向对象是一种面向对象是一种面向对象是一种模块化模块化的、以的、以的、以的、以对象对象为基础的设计思想,现为基础的设计思想,现为基础的设计思想,现为基础的设计思想,现在被广泛应用于软件设计领域。

在被广泛应用于软件设计领域。

在被广泛应用于软件设计领域。

在被广泛应用于软件设计领域。

ll面向对象面向对象=对象对象对象对象(Object)(Object)+类类类类(Classification)(Classification)+继承继承继承继承(Inheritance)(Inheritance)+通信通信通信通信(Communicationwithmessages,(Communicationwithmessages,接口调用接口调用接口调用接口调用)1)1)类类ll类与对象类与对象类:

一组具有相同数据结构和相同操作的对象类:

一组具有相同数据结构和相同操作的对象类:

一组具有相同数据结构和相同操作的对象类:

一组具有相同数据结构和相同操作的对象的集合。

的集合。

的集合。

的集合。

对象(实例):

类的实例化对象(实例):

类的实例化对象(实例):

类的实例化对象(实例):

类的实例化。

注意:

注意:

注意:

注意:

要使用对象,必须先定义类,然后再创建要使用对象,必须先定义类,然后再创建要使用对象,必须先定义类,然后再创建要使用对象,必须先定义类,然后再创建对象。

对象。

对象。

对象。

ll对象的生存周期对象的生存周期对象的生存周期对象的生存周期对象在建立时分配了内存,创建对象实际上作了两个方面的对象在建立时分配了内存,创建对象实际上作了两个方面的对象在建立时分配了内存,创建对象实际上作了两个方面的对象在建立时分配了内存,创建对象实际上作了两个方面的工作:

工作:

工作:

工作:

(11)使用)使用)使用)使用newnew保留字要求系统分配内存;保留字要求系统分配内存;保留字要求系统分配内存;保留字要求系统分配内存;(22)使用构造函数初始化数据。

)使用构造函数初始化数据。

)使用构造函数初始化数据。

)使用构造函数初始化数据。

ll销毁对象也是做了两个方面的工作:

销毁对象也是做了两个方面的工作:

销毁对象也是做了两个方面的工作:

销毁对象也是做了两个方面的工作:

(11)释放占用的内存;)释放占用的内存;)释放占用的内存;)释放占用的内存;(22)将分配给对象的内存归还给堆()将分配给对象的内存归还给堆()将分配给对象的内存归还给堆()将分配给对象的内存归还给堆(HeapHeap)。

)。

)。

)。

类类的声明的声明ll用用class定义类,声明类的形式为:

定义类,声明类的形式为:

附加声明附加声明附加声明附加声明访问修饰符访问修饰符访问修饰符访问修饰符classclass类名称类名称类名称类名称:

基类基类基类基类,接口序,接口序,接口序,接口序列列列列字段声明字段声明字段声明字段声明构造函数构造函数构造函数构造函数方法方法方法方法事件事件事件事件注意注意:

中的内容可省或任中的内容可省或任选其一选其一,当两者都有时当两者都有时,先基先基类后接口类后接口类类、字段、构造函数和方法、字段、构造函数和方法llP66P662)2)构造函数构造函数ll作用:

作用:

作用:

作用:

构造函数是一个特殊的方法,用于在建立对象时进行初始化的动构造函数是一个特殊的方法,用于在建立对象时进行初始化的动构造函数是一个特殊的方法,用于在建立对象时进行初始化的动构造函数是一个特殊的方法,用于在建立对象时进行初始化的动作。

作。

作。

作。

ll好处:

好处:

好处:

好处:

确保每一个对象在被使用之前都适当地进行了初始化的动作。

确保每一个对象在被使用之前都适当地进行了初始化的动作。

确保每一个对象在被使用之前都适当地进行了初始化的动作。

确保每一个对象在被使用之前都适当地进行了初始化的动作。

构造函数特点:

构造函数特点:

构造函数特点:

构造函数特点:

1.1.每个类至少有一个构造函数。

若程序代码中没有构造函数则系统会自动提供每个类至少有一个构造函数。

若程序代码中没有构造函数则系统会自动提供每个类至少有一个构造函数。

若程序代码中没有构造函数则系统会自动提供每个类至少有一个构造函数。

若程序代码中没有构造函数则系统会自动提供一个默认的构造函数。

一个默认的构造函数。

一个默认的构造函数。

一个默认的构造函数。

2.2.一个构造函数总是和它的类名相同。

一个构造函数总是和它的类名相同。

一个构造函数总是和它的类名相同。

一个构造函数总是和它的类名相同。

3.3.构造函数不包含任何返回值。

构造函数不包含任何返回值。

构造函数不包含任何返回值。

构造函数不包含任何返回值。

4.4.构造函数总是构造函数总是构造函数总是构造函数总是publicpublic的。

的。

的。

的。

一般在构造函数中作初始化工作,对于执行过程用时比较长的程序代码,一般在构造函数中作初始化工作,对于执行过程用时比较长的程序代码,一般在构造函数中作初始化工作,对于执行过程用时比较长的程序代码,一般在构造函数中作初始化工作,对于执行过程用时比较长的程序代码,最好不要放在构造函数中。

最好不要放在构造函数中。

最好不要放在构造函数中。

最好不要放在构造函数中。

2)2)构造函数构造函数11、默认构造函数、默认构造函数、默认构造函数、默认构造函数(11)如果在类中不定义构造函数,系统会提供一个默认)如果在类中不定义构造函数,系统会提供一个默认)如果在类中不定义构造函数,系统会提供一个默认)如果在类中不定义构造函数,系统会提供一个默认的构造函数。

的构造函数。

的构造函数。

的构造函数。

(22)默认构造函数没有参数。

)默认构造函数没有参数。

)默认构造函数没有参数。

)默认构造函数没有参数。

(33)默认构造函数自动将非静态成员初始化为:

)默认构造函数自动将非静态成员初始化为:

)默认构造函数自动将非静态成员初始化为:

)默认构造函数自动将非静态成员初始化为:

数值型数值型数值型数值型:

如如如如intint、doubledouble等,初始化为等,初始化为等,初始化为等,初始化为00。

boolbool类型:

初始化为类型:

初始化为类型:

初始化为类型:

初始化为false.false.引用类型:

初始化为引用类型:

初始化为引用类型:

初始化为引用类型:

初始化为nullnull。

(44)如果自己定义了类的构造函数,则所有初始化工作)如果自己定义了类的构造函数,则所有初始化工作)如果自己定义了类的构造函数,则所有初始化工作)如果自己定义了类的构造函数,则所有初始化工作由编程者自己完成。

由编程者自己完成。

由编程者自己完成。

由编程者自己完成。

2)2)构造函数构造函数2.2.重载构造函数(重载构造函数(重载构造函数(重载构造函数(P67P67)有时候可能会遇到这样的情况:

在一个类中的多有时候可能会遇到这样的情况:

在一个类中的多有时候可能会遇到这样的情况:

在一个类中的多有时候可能会遇到这样的情况:

在一个类中的多个方法中都要用到某一个数据成员,而该成员值个方法中都要用到某一个数据成员,而该成员值个方法中都要用到某一个数据成员,而该成员值个方法中都要用到某一个数据成员,而该成员值必须从其他类中传递过来。

这时,无参数的构造必须从其他类中传递过来。

这时,无参数的构造必须从其他类中传递过来。

这时,无参数的构造必须从其他类中传递过来。

这时,无参数的构造函数就不能胜任了,解决这个问题最好的办法就函数就不能胜任了,解决这个问题最好的办法就函数就不能胜任了,解决这个问题最好的办法就函数就不能胜任了,解决这个问题最好的办法就是:

重载(是:

重载(是:

重载(是:

重载(OverloadingOverloading)构造函数。

)构造函数。

)构造函数。

)构造函数。

33)字段和局部变量)字段和局部变量字段字段:

指声明为类一级的对象或值类型的变量。

指声明为类一级的对象或值类型的变量。

指声明为类一级的对象或值类型的变量。

指声明为类一级的对象或值类型的变量。

局部变量局部变量:

指在方法、事件以及构造函数内声明的变量。

指在方法、事件以及构造函数内声明的变量。

指在方法、事件以及构造函数内声明的变量。

指在方法、事件以及构造函数内声明的变量。

publicclassProgrampublicclassProgrampublicstaticintj=20;/publicstaticintj=20;/字段字段字段字段publicstaticvoidMain()publicstaticvoidMain()intj=30;/intj=30;/局部变量局部变量局部变量局部变量Console.WriteLine(j);/Console.WriteLine(j);/输出结果:

输出结果:

输出结果:

输出结果:

3030Console.WriteLine(Program.j);/Console.WriteLine(Program.j);/输出结果:

输出结果:

输出结果:

输出结果:

2020Console.ReadLine();Console.ReadLine();33)字段和局部变量)字段和局部变量ll当字段和局部变量名相同时,如果要引用静态字段,可以当字段和局部变量名相同时,如果要引用静态字段,可以当字段和局部变量名相同时,如果要引用静态字段,可以当字段和局部变量名相同时,如果要引用静态字段,可以使用下面的形式:

使用下面的形式:

使用下面的形式:

使用下面的形式:

类名类名.字段名字段名ll如果是实例字段,则使用下面的形式:

如果是实例字段,则使用下面的形式:

如果是实例字段,则使用下面的形式:

如果是实例字段,则使用下面的形式:

this.this.字段名字段名这里的这里的这里的这里的thisthis指当前实例。

指当前实例。

指当前实例。

指当前实例。

如果没有出现字段和局部变量名重名的情况,引用字段的形如果没有出现字段和局部变量名重名的情况,引用字段的形如果没有出现字段和局部变量名重名的情况,引用字段的形如果没有出现字段和局部变量名重名的情况,引用字段的形式和引用局部变量的形式相同。

式和引用局部变量的形式相同。

式和引用局部变量的形式相同。

式和引用局部变量的形式相同。

44)静态成员与实例成员静态成员与实例成员ll类的成员包括字段、属性、构造函数、方法、事件、索引、类的成员包括字段、属性、构造函数、方法、事件、索引、类的成员包括字段、属性、构造函数、方法、事件、索引、类的成员包括字段、属性、构造函数、方法、事件、索引、嵌套类。

嵌套类。

嵌套类。

嵌套类。

类的成员分静态成员和实例成员类的成员分静态成员和实例成员类的成员分静态成员和实例成员类的成员分静态成员和实例成员静态成员在内存中只有一份静态成员在内存中只有一份静态成员在内存中只有一份静态成员在内存中只有一份静态成员要等到应用程序结束时才会退出内存。

静态成员要等到应用程序结束时才会退出内存。

静态成员要等到应用程序结束时才会退出内存。

静态成员要等到应用程序结束时才会退出内存。

把只有创建了类的实例才能够使用的成员叫实例成员。

把只有创建了类的实例才能够使用的成员叫实例成员。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1