`

(转)面向对象相关

 
阅读更多
1. 封装:
封装的本质或目的其实程序对信息(数据)的控制力。
所以封装是有两个方面:该隐藏的隐藏起来,该暴露的暴露出来。
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
 
2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
 
3.动态特性
(1)抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
(2)多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
简要讲解了面向对象,接下来讲解重写、重载、泛型。
 
重写(覆盖)的规则:
   1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
   2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。
   3、重写的方法的返回值必须和被重写的方法的返回一致;
   4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;
   5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
   6、静态方法不能被重写为非静态的方法(会编译出错)。
 
重载的规则:
   1、在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);
   2、不能通过访问权限、返回类型、抛出的异常进行重载;
   3、方法的异常类型和数目不会对重载造成影响;
  
泛型:
      是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(现在人们大多把这称作模板)不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。一些强类型编程语言支援泛型,其主要目的是加强类型安全及减少类转换的次数,但一些支持泛型的编程语言只能达到部分目的。
分享到:
评论

相关推荐

    写给大家看的面向对象编程书(第3版).[美]Matt Weisfeld(带详细书签).pdf

     本书内容精炼,示例简单明了,适合各层次面向对象开发人员阅读,也是高校相关专业面向对象课程的理想教学参考书。 第1章 面向对象概念介绍 1 1.1 过程式程序设计与OO程序设计 2 1.2 从过程式开发转向面向对象...

    写给大家看的面向对象编程

     本书内容精炼,示例简单明了,适合各层次面向对象开发人员阅读,也是高校相关专业面向对象课程的理想教学参考书。 作者简介 · · · · · ·  Matt Weisfeld,资深软件技术专家。在C++、Smalltalk、.NET和Java...

    浙江大学面向对象程序设计C++大作业 MFC 3D查看编辑

    另外传统的opengl窗口有很大一部分基于glfw库来实现,但glfw的窗口只是单一窗口,缺乏用户友好性的UI交互操作,对于缺乏计算机相关知识的用户很难进行修改。另外glfw产生的窗口和MFC产生的窗口冲突,工程创建中经常...

    Ruby教程面向对象脚本语言

    和很多人一样,Matz是一个面向对象程序设计的fans,自然而然他想研究一种支持面向对象程序设计的脚本语言。随后的一段时间,他到网络上搜集了一些相关的资料,并且发现了Perl 5,当时Perl 5还没有发布。通过一段...

    【05-面向对象(下)】

    面向接口编程 •接口体现了规范与实现分离的原则。充分利用接口可以很好地提高系统的可扩展性和可维护性。 •接口与简单工厂模式、命令模式等。 内部类 •我们把一个类放在另一个类的内部...

    设计文档规范说明——针对面向对象的开发过程

    无论面向过程还是面向对象,一直都很重视设计文档,但由于设计文档规范要么是名字命名规范等有关编程的细节,要么就是利用已经编写好的程序想当然的抽象出相应的设计文档规范格式,要么就是从项目管理的要求出发,...

    面向对象的设备建模方法及其应用-论文

    为解决上述问题,提出了一种面向对象的设备建模方法。通过数据驱动将多种非标准化的数据结构转换为标准化数据结构,根据实际设备的相关属性建立对应的设备模型;基于设备模型创建设备实例,采用层级树形结构展示设备实例...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    本书涵盖了JavaSE开发环境配置、程序设计基础、面向对象相关技术、常用API、UML基础知识。在章节中穿插了上机习题,并提供了答案,用于对该章内容进行阶段性总结演练。 作者长期从事教学工作,积累了丰富的经验,其...

    面向对象形式建模的理论与方法

    尽管一些安全关键系统的国际标准强烈建议使用形式化方法(FMs),但是几乎所有有关FMs的现有... 最后,基于从混合自动机到VDM ++函数的转换,以及从UML模型到VDM ++数据结构的转换,建立了一个面向对象的VDM ++模型。

    Python(面向对象编程语言) v3.4.0.zip

    面向对象————Python即支持面向过程的编程也支持面向对象的编程。在“面向过程”的语 言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建...

    Java面向对象程序设计实验指导代码.docx

    Java面向对象程序设计实验指导代码 JAVA 面向对象程序设计实验指导代码 内容简介 本书是《 Java 面向对象程序设计》的配套实验指导和习题解答。本书的第一部分为 16 次上机实践的 内容,每次上机实践由若干个实验...

    JAVA面向对象程序设计

    一、编写一个应用程序,实现下列要求: 1.描述一个接口,其中含有一个求面积的方法 2.描述三角形类,且实现上述接口 3.采用继承描述直角三角形类,增加求弦长的方法, ...5.测试上转型对象和接口回调的有关内容

    黑龙江大学面向对象程序设计Java实验讲义软件样本.doc

    Java语言程序设计 实验讲义 黑龙江大学计算机科学技术学院 3月 前 言 《Java语言程序设计实验》在面向对象程序设计基本上,阐述Java语言编程基本及其设 计办法。内容涉及:Java程序输入输出、表达式与运算符、构造化...

    C++语言程序设计 (第一章)PPT

    面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程(OOP) 面向对象的测试(OOT) 面向对象的软件维护(OOSM) 系统分析阶段应该...

    GIS(地理信息)+坐标转换+十进制度转度分秒(度分秒转十进制度)+公式

    GIS(地理信息)+坐标转换+十进制度转度分秒(度分秒转十进制度)+公式 GIS工作者,经常出现坐标格式转换的问题,将十进制度转换为度分秒格式(十进制度->度分秒)...2、面向对象 GIS工作者、工作中遇到坐标转换的人群。

    关于计算机数据库系统设计方案.doc

    而面 向对象技术具有这些方面的优势,面向对象技术应用到数据库领域后,对象的使用就可 以满足对这些类型数据的相关操作。 1.2 支持复杂的数据结构。传统的关系型数据库不能满足数据库设计的层次性和设计对象多 样性...

    PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例

    主要介绍了PHP面向对象程序设计内置标准类,普通数据类型转为对象类型,结合实例形式分析了php面向对象程序设计中的内置标准类,普通数据类型概念、功能及对象类型转换相关操作技巧,需要的朋友可以参考下

    ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能

    如果想了解更多理论请查阅《ES6学习笔记(一):轻松搞懂面向对象编程、类和对象》、《ES6学习笔记(二):教你玩转类的继承和类的对象》,今天主要来分享关于如何用js面向对象的思维来实现tab栏的一些相关的功能。...

    ProType:一种新型的面向对象的前端JS框架

    如果需要帮助,可以转到文档,然后获取答案。 或者,您可以提交问题,我们将尽力尽快答复您。 支持 ProType是一个需要大量工作和精力的项目。 您可以留下一个 :star: 。 但是您也可以通过捐赠给我的 ,以“财务”...

    Ruby程序设计(简洁清新的教程)

    和很多人一样,Matz是一个面向对象程序设计的 fans,自然而然他想研究一种支持面向对象程序设计的脚本语言。随后的一段时间,他到网络上搜集了一些相关的资料,并且发现了 Perl 5,当时Perl 5还没有发布。通过一段...

Global site tag (gtag.js) - Google Analytics