原创c和java中oop机制之差异性分析

摘要:C++和Java是目前使用相当广泛的两种面向对象程序设计语言,该文对二者的OOP实现机制之差异性进行分析,从封装性、继承性和多态性三个方面进行探讨,为熟练使用C++和Java进行OOP编程提供帮助。关键词:封装性;继承性;多态性;差异性:TP311文献标识码:A:1009-3044(2012)03-0599-02C++和Java是目前主流的两种面向对象的程序设计语言。C++是编译型,而Java是解释型。C++执行速度快,而Java可移植性好,C++适合底层编程,而Java擅长于WEB系统和嵌入式消费电子设备编程。C++和Java都于基于OOP理论设计出来的,所以它们在基本语法和核心概念上有许多相似之处,然而它们之间在OOP的实现机制上存在不容忽视的差异。本文分析C++和Java在OOP实现机制上的差异。1OOP基本概念分析OOP(Object-OrientedProgramming)面向对象编程是目前最主流的程序设计思想,其核心内容由三部分组成:封装性、继承性和多态性。1.1封装性封装就是把数据和操作数据的方法结合在一起,形成一个类,外面的类不能随意访问这些数据,通常提供公用方法来访问数据。类和方法是封装性的核心概念。类是一类事物的抽象,包含这类事物的描述和可进行的动作。按照类的模板建立的实例,叫做对象。例如“教师”就可以抽象为一个类,其数据包括教师编号、姓名、性别等,其方法包括备课、讲课、辅导等,具体到某一个教师如“李华老师”,他就是一个对象。1.2继承性继承性所表达的是类之间的相互关系,为程序代码的复用提供了良好的支持。继承机制的核心概念是父类和子类,也叫基类和派生类。派生类继承基类的数据和操作,也就是说允许派生类使用基类的数据和操作。同时派生类也可以增加新的数据和操作。例如汽车可以抽象为一个基类,警车类可以作为派生类,它继承了汽车类的有四个车轮及可以移动的特性,还可以增加新的特性,如有警灯、警笛和优先通行等特性。1.3多态性多态性指不同的对象收到相同的消息时产生多种不同的行为方式。例如一个司机的车停在了别人的车位上,司机可能会收到别人给他的消息?“请把您的车挪开”,在图书馆里司机的凳子挡住了别人的去路,司机可能会收到别人给他的消息?“请把您的凳子挪开”。在这两种情况下司机收到的都是“挪开”一样东西的消息,但是在听到“挪开”请求以后的行为是截然不同的。这就是多态性,多态性的核心概念是重载和覆盖。2封装性之差异性分析C++拥有OOP的特性,同时也继承了C的许多面向过程的特性,如全局变量、结构体和枚举等,所以C++包含了面象过程编程和面向对象编程的双重概念。然而Java却是一种完全面向对象的编程语言,它所有的程序都是由类或者说类的定义组成的。2.1类的定义之差异类的组成通常是数据和操作,它们在C++中通常称为成员数据和成员函数,在Java中通常称为属性和方法。在C++中函数可以定义在类中,作为成员函数,也可以不定义在类中,作为独立的函数;数据可以定义在类中,作为成员数据,也可以定义在类外,作为全局变量。在Java所有的方法和属性必须定义在某个类中,禁止在类外对方法和属性进行定义,更符合其完全面向对象的特点。在C++中不可以在一个类的内部定义另一个类,也就是说不支持类的嵌套定义,而Java支持类的嵌套定义,称之为内部类。wwwandayulecwyl2.2对象的建立与销毁之差异C++和Java对象建立过程中分配空间的时机不同。假若有一个类Point,语句Pointp在C++中的含义是定义一个对象p,同时为对象p分配存储空间;语句Pointp在Java中含义却只是定义一个实例变量p,并没有分配存储空间,只有执行了p=newPoint()后才完成了存储空间的分配,生成了对象。C++中对象的生成和销毁都是通过编程人员编写程序代码来完成的,对象的生成需要编写构造函数,对象的销毁需要编写析构函数,在需要生成对象时自动调用构造函数,在对象销毁时自动调用析构函数,内存空间是由编程人员负责管理的。Java中对象的生成需要调用构造方法,这和C++中一样。但在Java中为简化编程,对象销毁时的空间回收是由系统的垃圾回收机制自动完成的,Java不支持析构方法,在必要的时候也可以创建一个方法来完成存储空间的回收。当由已经存在的对象建立一个新对象时,C++使...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?