1 / 4
文档名称:

山东大学面向对象.doc

格式:doc   大小:23KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

山东大学面向对象.doc

上传人:fy3986758 2019/5/14 文件大小:23 KB

下载得到文件列表

山东大学面向对象.doc

文档介绍

文档介绍:支持可变参数的函数,在函数定义时参数类型是未知的。支持代码只编写一次,高级别的抽象以及针对各种情况所需的代码裁剪。通常是通过给方法的接收器发送延迟消息来实现这种代码裁剪的。关于纯多态的一个简单实例是JAVA语言编写的StringBuffer类中的append方法一个定义多种结果2元类的作用?概念上一致,只用一个概念对象就可表述系统的所有成分。使类成为运行时刻一部分有助于改善程序设计环境。继承的规范化,由于类与元素的继承采用双轨制,继承可严格定义为除非显式说明为私有的情况,子类可以继承其超类的所有的操作。3替换原则?如果有AB两个类,类B是类A的子类,那么在任何情况下都可用类B来替换类A而外界毫无察觉。C++采用最小静态空间分配,只分配超类所需的内存空间。Java采用动态内存分配,只分配用于保存一个指针的内存空间,运行时通过堆来分配所需的内存空间,同时将指针设为相应的合适值。4组合复用的优缺点?提供一种利用已存在的软件组件来创建新的应用程序的方法。优点:容器类仅能通过被包含对象的接口来对其访问。黑盒复用被包含对象细节对外不可见。封装性好。所需的依赖少。每一个类只专注于一项任务。通过获取指向其它的具有相同类型的对象引用,可以在运行期间动态地定义(对象的)组合。缺点:。)来使用,必须仔细地对接口进行定义。5继承复用的优缺点?新的类可以声明为已存在的类的子类,通过这种方式,与初始类相关的所有数据字段,函数都自动地与新的数据抽象建立联系。优点:新的实现较为容易。修改和扩展继承的实现较为容易。缺点:破环封装。将父类细节暴露给子类。如果超类发生改变,那么子类的实现也不得不改变。从父类的继承来的实现不能在运行时发生改变,没有足够的灵活性。“白盒”复用,因为父类的内部细节对于子类而言通常是可见的。改写、重载、重定义的相同和不同相同点:都是函数名相同,有不同的实现。区别发生在同一个类中,类型签名不同:重载发生在父类和子类中,类型签名相同:改写发生在父类和子类中,类型签名不同:重定义多态形式:重载(类型签名区分,同一类中)改写(层次区分,母类子类间)多态变量(赋值区分parentp=newchild())泛型造型:自动造型/强制造型转换多态变量:方法所执行的消息绑定是由最近赋值给变量的数值的类型来决定的。简单变量接收器变量(this)纯多态(可变参数的函数,通过发送延迟消息//append中调用tostring,tostring在子类中重定义)类型签名是关于函数参数类型,参数顺序和返回值类型的描述范畴定义了能够使名称有效使用的一段程序,或者能够使名称有效使用的方法。匹配原则1找到所有可能进行调用的方法各个参数可以合法地赋值给各个参数类型的所有方法。如果找到一个在调用时可以完全匹配所使用的参数类型的方法,那么就执行这个方法。2如果第一步所产生的集合中的任何方法的参数类型都可以赋值给集合中的任何其他方法,那么就将第二个方法从集合中移走。重复以上操作,直到无法实现进一步的缩减为止。3如果只剩下一个方法,那么这个方法就非常明确了,调用这个方法即可。如果剩下的方法不止一个,那么调用就产生歧义了,此时编译器报告错误。方法调用的顺序(接收器和参数均存在父类时)(O)、(O)、