教学目标了解面向对象程序设计方法的基本原理及主要特点——抽_第1页
教学目标了解面向对象程序设计方法的基本原理及主要特点——抽_第2页
教学目标了解面向对象程序设计方法的基本原理及主要特点——抽_第3页
教学目标了解面向对象程序设计方法的基本原理及主要特点——抽_第4页
教学目标了解面向对象程序设计方法的基本原理及主要特点——抽_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、教学目标:了解面向对象程序设计方法的基本原理及主要特点抽象性、封装性、继承性、多态性。掌握类和对象的概念以及如何用类来解决具体问题并在类的基础上如何派生出新类,以及重载的概念和作用。教学类型:在多媒体教室直观讲授,引导学生进行类的操作。教学内容:复习上次课5.5类的继承Visual Basic.NET支持类的继承,允许用户定义一个类,作为其他类继承的依据,继承类能够继承,扩充基本类的属性和方法,继承类也可以重载基本类的一些方法。例如,把窗体看成一个类,在Vissal Basic.NET中用户可以根据现有的窗体继承出一个新的窗体。其中已有类叫做基类(父类),继承的新类叫做派生类(子类)。1、实现

2、基本的继承下面通过例子进一步说明为什么要使用继承。要描述人和雇员,对于每一个人来说都有姓名、年龄、性别等信息,对于公司雇员有以上内容以外还有雇员的工作部门及薪水等信息。当分开来实现这两个类的时候,就会发现其实它们有许多相同之处。如果分开编写这两个类的代码,不仅编写效率低,而且程序代码也难以维护,所以最好的方法就是让它们使用一些相同的代码,此时继承就可以发挥作用了。使用继承,可以创建一个Person类(基类),它包含了name(姓名)、age(年龄)、sex(性别)等属性所有的共享代码。然后再创建employee派生类,这个类是由person类继承而来的,这样它们就可以自动地获得所有的公用代码了

3、。【例5.3】建立person类及它的派生类employee类。Public Class person Public sname, Iage, ssex Public Property name() As String Get Return sname End Get Set(ByVal value As String) sname = value End Set End Property Public Property age() As Integer Get Return Iage End Get Set(ByVal value As Integer) Iage = value End S

4、et End Property Public Property sex() As String Get Return ssex End Get Set(ByVal value As String) ssex = value End Set End PropertyEnd ClassPublic Class employee Inherits person Dim Ssalary As Single Public Property salary() As Single Get Return Ssalary End Get Set(ByVal value As Single) Ssalary =

5、value End Set End Property Sub Displayemployee() Debug.WriteLine("雇员的姓名:" & name) Debug.WriteLine("雇员的性别:" & sex) Debug.WriteLine("雇员的年龄:" & age) Debug.WriteLine("雇员的薪水:" & salary) End SubEnd ClassModule Module1 Sub Main() Dim aemployee As New

6、employee() = "王强" aemployee.sex = "男" aemployee.age = 25 aemployee.salary = 3600.0 aemployee.Displayemployee() End SubEnd Module2、禁止继承在默认状态下,创建的任何类都是可以用作基类,可由这个基类创建其他的类。但有时需要创建一个不被继承的类,这时可以在类的声明中使用NotInheritable关键字。Public NotInheritable Class Class_nameEnd Class使用这

7、个关键字后,其他代码都不能使用Inherits关键字来创建一个由这个基类继承二来的子类。3、基类成员在派生类中的作用域通过继承性创建子类时,新类将从父类获得所有Public 和 Friend方法、属性及变量。但在父类中声明的Private的任何内容都不能直接应用于新子类的代码中。例如:可以在上例的person类中重写age方法,代码如下:Private Property age() As Integer Get Return Iage End Get Set(ByVal value As Integer) Iage = value End Set End PropertyAge方法声明为pri

8、vate,所以employee类和其他代码都不能使用它。当然也有一个列外,就是New方法,构造函数方法必须在每一个子类中重新定义。有时public和private并不够用,需要创建一个可以用于子类而不能用于客户代码的方法,此时就可以使用protected作用域。当某些内容声明为protected时,该元素就不能应用于类以外的代码,但可以应用于通过继承派生出的子类。例如:若将person类当中的name、age、sex属性都声明为Protected Property name() As StringProtected Property age() As IntegerProtected Prop

9、erty sex() As string那么测试程序中的下列代码将不再有效:aemployee. name = “王强”aemployee. sex = “男”aemployee. age = 25但示例中的name、age、sex属性可以应用于employee中的所有代码,因为它继承了父类。为设置属性,可以在employee中增加一个方法setperson():Public Class employee Inherits person Dim Ssalary As SinglePublic Property salary() As Single Get Return Ssalary End

10、Get Set(ByVal value As Single) Ssalary = value End SetEnd PropertySub setperson(ByVal n As String, ByVal a As Integer, ByVal s As String, ByVal c As Single) name = n age = a sex = s salary = cEnd Sub Sub Displayemployee() Debug.WriteLine("雇员的姓名:" & name) Debug.WriteLine("雇员的性别:&qu

11、ot; & sex) Debug.WriteLine("雇员的年龄:" & age) Debug.WriteLine("雇员的薪水:" & salary) End SubEnd ClassModule Module1 Sub Main() Dim aemployee As New employee() aemployee.setperson("王强", 25, "男", 3600.0) aemployee.Displayemployee() End SubEnd Module5.6重载方法V

12、B.NET具有重载方法的功能,可以利用重载来实现多态性。重载是可以在一个类中可多次声明相同名称的一种方法,只要每个声明都有不同的参数列表即可。其中参数列表不同指的是参数的数据类型不同或参数的个数不同。例如:Public Sub show(ByVal x As Integer, ByVal y As Integer)。上面show方法的参数列表的参数的类型为(Integer, Integer)。为了重载这个方法,必须使用不同的参数列表,例如(Double,Integer)或(Integer,Double)都可以。重载不能只是通过改变函数的返回值来实现,而是要求实际参数的数据类型不同。Public Class sum Public Function add(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function Public Function add(ByVal a As Double, ByVal b As Double) As Double Return a + b End FunctionEnd ClassModule Module1 Sub main() D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论