《2022年如何体现封装、继承、多态编程人员看看 .pdf》由会员分享,可在线阅读,更多相关《2022年如何体现封装、继承、多态编程人员看看 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、public void setProp(int prop)this.prop=prop;属性 prop 是 private的,外界不能直接访问,但是外界可以通过调用getProp()和 setProp()的方法,给对象发消息,从而完成某种功能。什么事多态?多态性的概念经常被说成事“一个接口,多种方法”。这意味着可以为一组相关的动作作设计一个通用的接口。多态允许同一个接口被必于同一个类的多个动作使用,这样就降低了程序的复杂性。再拿狗作比喻,一条狗的嗅觉是多态的。如果狗闻到猫的气味,它会在吠叫并且追着它跑。如果狗闻到食物的气味,它将分泌唾液并向盛着食物的碗跑去。两种状况下同一种嗅觉器官在工作,差别
2、在于问到了什么气味,也就是有名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 10 页 -两种不同类型的数据作用于狗的鼻子!在 java 中,同一个类中的 2 个或 2 个以上的方法可以有同一个名字,只要参数声明不同即可。在这种情况下,该方法就被称为重载(Overload),这个过程称为方法重载(Method overloading)。方法重载是 java 实现多态的一种方式。有两种方式可以实现多态:*1.继承(子类继承父类(包括 abstract class,interface ect)2.重载(同一个类中)如果是面向对象程序设计的话,面向对象程序设计中的另外一个重要概念是多态性
3、。在运行时,通过指向基类的指针,来调用实现派生类中的方法。可以把一组对象放到一个数组中,然后调用它们的方法,在这种场合下,多态性作用就体现出来了,这些对象不必是相同类型的对象。当然它们都继承自某个类,你可以把这些派生类都放到一个数组中。如果这些对象都有同名方名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -法,就可以调用每个对象的同名方法。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。多态性通过派生类重载基类中的虚函数型方法来实现。在面向对象系统中,多态性是一个非常重要的概念,它允许客户对一个对象进行操作,由于对象来完成一系列的动作,具体
4、实现哪个动作、如何实现由系统负责解释。“多态性”一词最早用于生物学,指同一种族的生物体具有相同的特性。在C#中,多态性的定义是:同一操作作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的执行结果。C#支持两种类型的多态性:编译时的多态性编译时多态是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数,返回的类型名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 10 页 -等信息决定实现何种操作。运行时的多态性运行时多态性就是指直到系统运行时,根据实际情况决定何种操作。C#中,运行时的多态性通过虚成员实现。编译时的多态性为我们提供了运行速度快的特点,而运行时
5、的多态性则带来了高度灵活和抽象的特点。面向对象的编程方法具有四个基本特征:1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不是打算了解全部问题,而是选择其中的一部分,忽略暂时不用部分细节。比如,我们要设计一个学生成绩管理系统,考察学生这个对象时,我们只关心他的班级、学号、成绩等,而不用去关心他的身高、体重这些信息。抽象包括两个方面,一是过程抽象,二是数抽象。过程抽象是指任何一个明确定义功能的操作都可被使用名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 10 页 -者看做单个实体看待,尽管这个操作实际上可能由一系列更低级的操作来
6、完成,数据抽象定义了数据类型和施加于该类型对象的操作,并限定了对象的值只能通过使用这些操作修改和观察。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,他提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程为类的继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从他的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。这也体现了大自然的一般与特殊的关系。继承性很好的解决了软件的可重用性问题。比如说,所有的Windows应用程序都有一个窗口,他们可以看作都是从一个窗口派生出来的。但是
7、有的应用程序名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 10 页 -用于文字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了不同的特性。3.封装:封装是面向对象的特征之一,是对象和类概念的主要特性,封装是吧过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治,封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可观性,即哪些特性对外部世界时可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常,应禁止直接访问一个对象的实际表示,
8、而应通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 10 页 -于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。4.多态性:多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同。又比如,同样的选择编辑-粘贴操作,在文字处理程序和绘图处理程序中有不同的效果。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享,代码共享
9、的优势,很好的解决了应用程序同名问题。使用了对象就叫基于对象,基于对象的基础增加了继承从而变成了面向对象。基于对象的最大特点就是封装,至于private,protected,public,并不是基于对象语言的必须要求。同时应该注意的是,封装对于应用本身并没有提供太大的帮助;换句话说封装名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 10 页 -一、事务:1.什么是事务:事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时事务是做为最小的控制单元来使用的。他包含的所有数据库操作命令作为一个整体一起向系提交或撤消,这一组数据库操作命令要么都执行,要么都不执行。2.事务的语句
10、开始事物:BEGIN TRANSACTION 提交事物:COMMIT TRANSACTION 回滚事务:ROLLBACK TRANSACTION 3.事务的 4 个属性原子性(Atomicity):事务中的所有元素作为一个整体提交或回滚,事务的个元素是不可分的,事务是一个完整操作。一致性(Consistemcy):事物完成时,数据必须是一致的,也就是说,和事物开始之前,数据存储中的数据处于一致状态。保证数据的无损。隔离性(Isolation):对数据进行修改的多个事务是彼此隔离的。这表明事务必须是独立的,不应该以任何方式以来于或影响其他事务。持久性(Durability):事务完成之后,它对于
11、系统的影响是永久的,该修改即使出现系统故障也将一直保留,真实的修改了数据库4.事务的保存点SAVE TRANSACTION保存点名称-自定义保存点的名称和位置ROLLBACK TRANSACTION保存点名称-回滚到自定义的保存点5.举例引用事务:BEGIN TRANSACTION-开始事务DECLARE errorSun INT-定义错误计数器SET errorSun=0-没错为 0 UPDATE TEST SET TYUER=TYUER-10 WHERE TNAME=A-事务操作 SQL语句SET errorSun=errorSun+ERROR-累计是否有错UPDATE TEST SET
12、TYUER=TYUER+10 WHERE TNAME=B-事务操作 SQL语句SET errorSun=errorSun+ERROR-累计是否有错IF errorSun0 BEGIN PRINT 有错误,回滚 ROLLBACK TRANSACTION-事务回滚语句END ELSE BEGIN PRINT 成功,提交 COMMIT TRANSACTION-事务提交语句END GO 二、索引:名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 10 页 -语法:CREATE 索引类型 INDEX 索引名称ON表名(列名)WITH FILLFACTOR=填充因子值 0100 GO1.什么是
13、索引:数据库中的索引是某个表中一列或多列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。2.分类:唯一索引(UNIQUE):不允许两行具有相同的索引值(创建了唯一约束,系统将自动创建唯一索引)主键索引:主键索引要求主键中的每个值是唯一的,(创建主键自动创建主键索引)聚集索引(CLUSTERED):表中各行的物理顺序与键值的逻辑(索引)顺序相同,表中只能包含一个聚集索引,主键列默认为聚集索引非聚集索引(NONCLUSTERED):表中各行的物理顺序与键值的逻辑(索引)顺序不匹配,表中可以有249 个非聚集索引3.创建索引的标准:用语频繁搜索的列;用语对数据进行排序的列注意:如果表中
14、仅有几行,或列中只包含几个不同的值,不推荐创建索引,因为 SQL Server 在小型表中用索引搜索数据所花的时间比逐行搜索更长。4.举例:IF EXISTS(SELECT*FROM SYSINDEXES WHERE NAME=IX_TEST_TNAME)-检测是否已经存在IX_TEST_TNAME索引DROP INDEX TEST.IX_TEST_TNAME-如果存在则删除-创建索引CREATE NONCLUSTERED INDEX IX_TEST_TNAME-创建一个非聚集索引ON TEST(TNAME)-为 TEST表的 TNAME 字段创建索引WITH FILLFACTOR=30-填充
15、因子为 30%GO 三、视图语法:CREATE VIEW 试图名称AS 1.什么是视图:试图是另一种查看数据库中一个或多个表中的数据的方法,是一种虚拟表。通常是作为来自一个或多个表的行或列的子集创建的。它可以包含全部行和列,它并不是数据库中存储的数据值的集合。2.视图的作用:筛选表中的行;防止未经许可的用户访问敏感数据;降低数据库的复杂程度;将多个物理数据表抽象成一个逻辑数据表3.举例说明:-检测是否存在 view_biao1_biao2试图IF EXISTS(SELECT*FROM SYSOBJECTS WHERE NAME=view_biao1_biao2)DROP VIEW view_biao1_biao2 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 10 页 -创建视图,综合表1 中的姓名字段和表2 中的笔试成绩字段CREATE VIEW view_biao1_biao2 AS SELECT 姓名=stuName,笔试成绩=stuwrittenExam FROM biao1 LEFT JOIN biao2 ON biao1.stuNO=biao2.stuNo-条件:-两个表中的学好相同GO-使用视图SELECT*FROM view_biao1_biao2 名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 10 页 -