




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务六VisualBasic.NET面向对象语言基础,VB.NET程序设计,VB.NET程序设计,理解面向过程和面向对象的编程概念理解面向对象的基本概念:对象、类、字段、属性、方法等理解什么是抽象以及如何从现实世界中的实体抽象成类和对象创建和使用类理解类成员的概念,并能够自定义合适的类成员继承,学习目标,问题引入,在前面创建的系统中,操作数据库的代码是写在每个窗体中使得对数据库操作的代码维护起来比较麻烦,代码量也要重复编写。在实际中,把操作数据库的代码写在一个类中,其它窗体要操作数据库就只要调用这个类的方法就可以啦.,面向过程和面向对象,面向过程面向过程和面向对象是两种不同的软件开发方法,也代表着分析问题的两种不同思路。面向过程就是分析出解决问题所需要的步骤,程序按照步骤A到步骤B来实现,用户按照一个个的步骤来解决具体问题。面向对象面向对象是把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。,1、对象和类对象是实现世界中各种实体的抽象表示,它是数据和代码的集合,有自己的状态和行为。类是面向对象的基本概念,是对一组具有相同特征(数据元素代码中称之为“属性”)和相同行为(函数代码中一般称之为“方法”)的对象的抽象描述(用程序代码定义)。比如:香蕉是一种水果,苹果也是一种水果,葡萄、桔子是水果;猫是一种动物,狗也是一种动物,牛、羊都是动物。也就是说现实生活中,我们可以用分类的方法去区别不同种类的东西。在这里,香蕉、苹果、葡萄和桔子就是具体的“对象”,如果把这些对象进行抽象的描述,就可以得出结论:这些“对象”属于水果“类”,因为它们有相同的特征(酸或甜,水份多等)。,理解面向对象的基本概念,对象和类,简单来说,类是一种类型(各种类型的控件就是一个个的“类”)。把工具箱的控件拖到窗体上时,即产生该类控件的一个对象。,面向对象程序设计的重要特征:,继承性继承性是指基于现有的类(称为父类或基类)创建新类(称为子类或派生类)的机制。封装性封装是指将对象的数据和操作包装在一起,从而使对象具有包含和隐藏信息(如内部数据和代码)的能力。多态性多态性是指类为方法提供不同的实现形式,但可以用相同名称调用的功能。,1、单击”项目”菜单/添加类2、在”添加新项”对话框中选择”类”3、在”名称”文本框中输入类名4、单击”添加”按钮,在应用程序中添加类(创建类),声明类(类的格式)PublicClass类名字段、属性、方法、事件等EndClass,类的定义,字段(变量),在类块中声明字段的方式如下:访问级别字段名As数据类型其中访问级别有:PublicPrivateDim,注:用Private或Dim关键字声明的变量为私有字段,用Public关键字声明的变量为公共字段,字段、属性定义的语法格式如下:Private变量名AS数据类型Public|ReadOnly|WriteOnlyProperty属性名()AS数据类型GetReturn变量名EndGetSet(ByvalValueAS数据类型)变量名=ValueEndSetEndProperty,定义字段和属性,对于属性而言,访问修饰符省略的话默认为Public,方法是封装在类内部的完成特定操作的过程或函数。要创建方法,实际上就是在类中编写若干个过程(Sub)或函数(Function)。格式如下:Public|Friend|Private|ProtectedSub方法名()EndSub访问修饰符省略的话默认为PublicPublic:表示具有公共访问权限,访问没有任何限制Friend:友元访问权限,可以从声明上下文内和同一程序中的任何位置访问它们。Private:私有访问权限,访问限于类的内部Protected:保护权限,访问权限限于类的内部或派生类中,创建方法,PublicClassmyrectangleDimWAsIntegerDimHASIntegerPublicPropertyWidth()AsIntegerGetReturnWEndGetSet(ByvalValueASInteger)W=ValueEndSetEndProperty,在应用程序中创建类例子1,PublicPropertyHeight()AsIntegerGetReturnHEndGetSet(ByvalValueASInteger)H=ValueEndSetEndPropertyPublicFunctionArea()ASIntegerReturnW*HEndFunctionEndClass,创建一个“myrectangle”类(矩形类)。两个字段W和H,以及对应的两个属性Width和Heigth。一个计算面积的方法Area()。,类定义示例例子2,定义一个Lion类,有hungry字段和Eat()方法。,PublicClassLionPrivatehungryAsBooleanPublicSubEat(strAsString)MessageBox.Show(str)EndSubEndClass,构造函数,在创建对象时总要调用一个特定的方法,这个方法叫做构造函数。构造函数主要用来为对象分配内存空间,完成初始化操作。当New一个新的对象时系统就将自动调用相应的构造函数(跟创建对象时类名后面的参数有关)。,构造函数(续),类中构造函数的规定:构造函数是一个Sub通用过程,过程名为New当某个类没有定义构造函数时,系统将自动为其创建无参数和无方法体的默认构造函数。构造函数的访问修饰符是Public构造函数可以有参数,也可以无参数,可以有多个参数。在一个类中可以定义多个构造函数,构造函数,PublicClassmyrectanglePublicSubNew()W=3H=5EndSubPublicSubNew(ByvalxasInteger,ByvalyasInteger)W=xH=yEndSubEndClass,在“myrectangle”类的基础上,添加了二个构造函数,一个无参数,一个有两个参数。,构造函数例子2,在Lion类中定义两个构造函数,一个函数无参数,另一个函数有一个String类型参数,PublicClassLionPrivatehungryAsBooleanPublicSubNew()MessageBox.Show(“无参数”)EndSubPublicSubNew(ByValstrAsString)MessageBox.Show(“一个参数”)EndSubPublicSubEat(ByValstrAsString)MessageBox.Show(str)EndSubEndClass,析构函数,1、当对象离开作用范围或被赋值为Nothing时,该对象的生命期结束。VB.NET使用一个名为Finalize的Sub过程来释放系统资源,这个过程称为析构函数。2、Finalize析构器是一个受保护的过程,它被系统自动调用,而且不能显式地被调用。,对象的创建,对象的创建和使用,类定义后,就可以创建类的实例(对象),创建类的实例需使用New关键字。类的实例就是对象。,对象的创建和使用,创建对象语句的一般格式如下:访问级别As类名=New类名(参数)访问级别AsNew类名(参数)访问级别可以是Dim、Private、Static、Shared等New关键字是调用构造函数类完成对象的初始化工作。将依据参数类调用相应的构造函数。,对象的使用创建对象之后,就可以在程序中使用这个对象:对象调用类中的字段:对象名.字段名=值变量=对象名.字段名调用对象方法:对象名.方法名(参数),对象的创建和使用,在应用程序中使用类,在应用程序中使用类,PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimrecAsNewmyrectangleNew表示实例化rectangle,就是从rectangle类实例化一个对象recrec.Height=CInt(TextBox1.Text)rec.Width=CInt(TextBox2.Text)TextBox3.Text=rec.AreaEndSub,思考:调用哪个构造函数?,类的继承,从一个已知的类创建新类的语句格式为:PublicClass新类名InheritsClassNameEndClass其中,ClassName是基类的名称。注意:Inherits语句必须是类定义语句中的第一条语句。,类的继承举例,PublicClassBaseclassPublicxASIntegerPublicyAsStringEndClassPublicClassChildclassInheritsBaseclassPublicFunctionGetstring()AsStringReturnyEndFunctionEndClass,类的继承继承的范围,当通过继承来创建一个子类时:1、子类可以从基类中继承所有的用Public和Friend关键字声明的变量、属性和方法。2、子类不能继承在基类中用Private关键字声明的变量、属性和方法,这些变量、属性和方法只能在该基类中使用。3、在基类中使用Protected关键字声明的变量和方法,可以被它的子类继承即可以在子类中直接调用或使用,但对于任何类外部的代码将不能调用。4、继承具有传递性。若类A有子类B,类B有子类C,则类C不仅继承类类B,有继承了类A的成员。,一道题目,小结,本章主要介绍了面向对象的基本概念,面向对象以抽象和封装的方式将事物划分成类,用对象实例化的操作来解决问题。类包括字段、属性、方法和事件,过程从属于类就成了方法。面向对象的继承原则允许创建一个基类,然后从这个基类派生出更多的派生类,其中派生类能够继承基类的属性和方法。,1.填空题1)声明为Private的一个类成员,只有定义这些成员的类的方法能够访问。2)关键字Class表示一个类的定义。,习题,2.判断正误并说明原因1)构造函数可以返回值。,习题(续),3.编程题1)使用构造函数的方法来创建Data类,使该类的对象既可以接受一个String类型的数据初始化,也可以接受一个Integer类型的数据初始化。初始化时将输入的内容打印出来。,习题(续),在项目中创建一个DataBase类,定义OleDbConnection、OleDbTransaction、OleDbCommand对象。定义打开连接、关闭连接连接、返回数据库记录、操作数据库的方法。在各个Form中操作数据库的代码都修改为通过DataBase类的方法来操作数据库,完成数据库操作任务(实训),课堂实训1(知识点:创建类,字段,属性,方法等),新建一个项目,然后选择项目|添加类命令,出现添加新项。在对话框中的名称中输入“类”的名称。定义一个新类Person,定义私有(Private)的name,age字段;定义一个无参数的构造函数,再定义一个有两个参数的构造函数,这两个构造函数都用来初始化name、age;最后定义两个方法GetAge和GetName,分别用来得到age、name值,课堂实训2(知识点:创建类的继承),在前面的基础上,添加一个新类Student,继承Person类;在Student类中添加字段score和相应的构造函数,以及方法GetScore()来获得score字段值。再在窗体上添加一个Button按钮,当单击这个Button时,调用GetAge、GetName和getSocer方法,在TextBox控件中显示出得到的age、name和score值。,以下内容为选学内容,重载与重写-重载,多态性在面向对象程序设计中是非常重要的特性,在VB.NET中可以利用重载与重写来实现多态性。1、重载(Overloading)重载是在一个类中使用相同的名称,但有不同的参数类型,创建一个以上的方法或属性。重载意味着可以在一个类中,多次声明相同名字的方法或属性,只是每一次的声明,都有不同的参数列表。在VB.NET中利用“Overloads”关键字,将类中的方法或属性声明为重载的类型。,重载与重写,重载举例:创建一个在数据库中查找具有相同姓名、相同年龄或相同工资的人员的类。查找到的满足条件的记录,存放在ArrayList结构数组中。PublicClassSearchPublicOverloadsFunctionGetperson(ByValNameAsString)AsArrayListEndFunctionPublicOverloadsFunctionGetperson(ByValAgeAsInteger)AsArrayListEndFunctionPublicOverloadsFunctionGetperson(ByValSalaryAsSingle)AsArrayListEndFunctionEndClass,重载与重写-重写,多态性在面向对象程序设计中是非常重要的特性,在VB.NET中可以利用重载与重写来实现多态性。2、重写(Overriding)重写就是在不影响基类的情况下,子类对从基类继承的属性和方法,可以进行修改和扩充。在子类中重写基类的属性和方法时,就会产生多态性。通过重写,子类可以重复使用基类中相同的方法或属性名称,但各方法或属性中,所包含的代码却完全不同。,重载与重写-重写,当通过继承创建一个新类,并要重写方法或属性时,应按如下步骤操作:在基类中使用Overridable关键字声明要重写的方法和属性。在子类中,子类定义语句后的第1个语句应是Inherits语句。在子类中使用Overrides关键字来声明重写的方法和属性。,重载与重写,重写举例:基类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湘阴县中考考试卷及答案
- 化验员中级考试试题库及答案
- 茂名初二月考试卷及答案
- 湖北防疫员考试题及答案
- 2025锦州社区考试真题及答案
- 陇南一中考试题目及答案
- 标志设计协议书与标识系统设计合同5篇
- 高二新乡期中考试试卷及答案
- 赵一鸣项目经理考试题目及答案
- 2025年一级消防工程师《消防安全案例分析》考试真题及答案解析
- 2024-2025学年甘肃省高一数学上学期期中考试卷
- 2024年职工职业技能大赛数控铣工赛项理论考试题库-下(多选、判断题)
- 2024年初中七年级英语上册单元写作范文(新人教版)
- 人教部编版六年级语文上册郝晓怡《盼》名师教学课件
- 【义乌小商品市场出口贸易的现状与对策探析8100字(论文)】
- 义务教育劳动课程标准2022年版考试题库及答案5
- 心速宁胶囊的抗心肌纤维化
- 医院卒中中心建设各种制度、流程汇编
- DB32-T 4757-2024 连栋塑料薄膜温室建造技术规范
- DB46-T 610-2023 浮式深水养殖网箱锚泊系统及安装技术规范
- 实验室安全与防护智慧树知到期末考试答案2024年
评论
0/150
提交评论