当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

从C++到Java:理解面向对象的关键所在[Java编程]

赞助商链接



  本文“从C++到Java:理解面向对象的关键所在[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Java在虚拟机上运行

Java源代码并非被编译成为普通的机械代码.而是被翻译成为虚拟机可以履行的代码.一个Java注释器终究履行这些代码.这此中没有衔接的历程;注释在需求的时刻动态的加载一些类;

Java是完全面向对象的

Java是一种完全面向对象的语言.这意味着你对任何一个Java对象所做的行动都是通过一个办法实现的.第一点就是,再也没有没有主函数这样的孤独的东西了.取而代之的是,你必须开始用一个对象的见解对待一个程序,一个类的对象.但是这个对象又什么对象呢?大大都Java程序只是简单的通过担当Java底子类Object来实现所需求的东西,但是你可以通过成立程序底子类用于多个特点类似的利用程序来节俭时间.

严峻的面向对象的规定意味着理用原有的C/C++代码不可以直接不加窜改的利用;系统调用也是这样的.C++中,你可以通过在C++正常的命名空间外声明extern"C"来利用原有的C的历程调用,包含系统调用.

在Java中,只有一个近似的安全回溯的办法,但是并非非常简单的办法.你必须定义一个本地办法,其目的是为C语言供应接口,然后供应衔接的介质.Java环境供应了完成这种任务的工具,但是整个历程和C++中供应的extern比微不足道,完成利用C++类的历程则越发复杂,因为这样会引入对C的捏词和C函数和C++成员函数的问题.

幸运的是,很多常用的系统实用工具函数已经在系统类中的办法中供应出来,但是这些明显没有包含经过很多年来你所成立的那些类和历程.所以,在你需求的时刻你应当去研究一下.

Java中没有独立的头文件

在Java中,关于类的一切东西都被放到一个单独的文件中.办法的位置只大概在一个地方呈现,一个办法的实现必须在它的定义历程中同时举行.这样做得长处是在实现程序的时刻不简单因为文件的非同步错误而失利,大概获得到一个没有实现的声明.类的声明可以被Java注释器操纵乃至是从一个编译过的单元中获得,所以不再需求有头文件,只要有编译过的文件.

这样做的缺陷与我们编程的历程有关.很多C++程序员喜好用头文件来替换文档.要看一个成员函数的接口参数,只需求看头文件中的声明便可.你可以常常的看头文件便可理解怎样去利用这个类.在Java中,没有这样的总结.因为实现类办法的代码必须在办法定义的时刻呈现,并且,关于一个单独的函数的代码来说就常常占据了一整页乃至更多.这样,很难通过看Java的代码就初步理解类是怎样利用的.你必须为你需求的类预备充足多的文档.不言而喻,再处理非商业类库的时刻文档是非常贫乏的.

在抢先的Java环境中供应了两个工具来补偿这些,javap来打印类标识,javadoc为嵌入式程序供应HTML文档.

用Package来分化Java命名空间

在大的C++工程中常常碰到的一个问题是命名空间--怎样保证工程的一些程序员不会成立和另一些程序员一样名字的类?更糟糕的是,供应商大概会供应一个包含和你的类一样名字的类的库.有很多办法可以办理这一问题,但是极大概在问题发现之前工程已经启动,改正错误是需求付出很多痛楚的.

Java通过"Package"这个概念办理了这个问题,Package有效地通过通过调集类划分了命名空间.在差别包内的两个同名的类仍旧是差别的.关键问题就变成了类能否安排到呼应的包中.

记着,Java并没有办理命名冲突的问题.扩大一个基类而惹起了派生类的冲突.比方说,假如你最喜好的供应商供应了一些类,然后你把它们用做基类并且派生有一个foo办法的类,当供应商供应一个新版本的类的时刻便大概呈现,假如供应商业也在新类中供应了一个foo的办法.

非常是Java的重要特点

在C++中,非常和非常处理是非常高深的事情;很多C++程序员从没有处理过它们乃至不知道它们是何物.非常是在正常的历程中呈现的未意料的错误,因此,它们不会从办法中返回,大概作为参数传入;但是,它们不能被忽视!这里的一个例子是计算一个书的方根的办法.

正常的接口情势是将一个正数作为参数传入办法,然后办法会返回一个正实数作为后果,办法可以查验这些并且在非常产生的时刻抛出非常.在大大都系统中,程序员并非必须这样做,这样,一个没有考虑到的非常可以使程序不正常的退出.

在Java中,非常已经成为语言中非常成熟的部份.办法的阐明中就包含了非常的信息,程序处理器也强迫查验假如你利用了一个可以产生非常的办法,你就必须查抄非常能否发生.几近全部的Java程序员城市碰到非常的情形,因为很多非常有效的库中的类城市抛出非常.处理非常并不难,但是在一些时刻是需求注意的.一个办法的文档会指明办法抛出的非常的范例.假如你忘了,不要紧,编译器会提醒你的.

字符串不再是字符数组

Java中包含了一个字符串的对象,并且是个常量.字符串不像字符数组一样,固然可以简单的从一个字符数组构造一个字符串.你应当尽大概的用字符串替换字符数组,因为他们不会因为误操作而被覆盖.

Java限制了常量对象和办法

在C++中,你可以正式的声明一个函数参数大概函数返回值为const范例,这样可以有效的避免对参数大概返回值的不合理改正.别的,你可以声明一个成员函数为const,表明它不可以改正任何他操作的对象.

Java支持常量操作符,只读变量,这些通过final关键字实现.但是Java没有支持强迫的使一个可写变量在函数传送、返回的历程中变成只读.大概定义一个不操作改正对象的常量办法.

在Java中,这个省略带来的影响和在C++中相比就非常小了,这很大程度上因为字符串变量和字符数组的差别,但是这也带来一个惹起错误的隐患.分外地,没有办法查验一个办法能否可以窜改对象.


  以上是“从C++到Java:理解面向对象的关键所在[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 从C++到Java:理解面向对象的关键所在
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .