快速业务通道

Java与C++编程的不同 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

Java与C++编程的不同

时间:2010-12-23

1.数据类型和变量

C++ 中的变量类型与Java很相似。像Java一样,C++ 有int 和 double 类型。但是这些数字类型的取值范围是依赖于机器的。比如在16位系统上,例如运行DOS 或Windows 3.x的PC机上,int 是双字节(2-byte)的,取值范围比Java的4-byte的int 要小很多。在这些机器上,如果 int 不够用的话,你需要使用长整型long.

C++ 有 short 和 unsigned 类型来更有效的存储数字。(我认为所谓有效是指更高的空间利用率。) 最好是尽量避免使用这些类型除非是空间利用的有效性对你的系统真的非常重要。

在C++中布尔型用 bool 表示,而不像在Java中用boolean.

C++ 中字符串类型用 string 表示。它与Java中的String 类型非常相似,但是,还是要逐一以下几点不同之处:

1.C++ 字符串存储ASCII 码字符,而不是标准码Unicode 字符

2.C++ 字符串是可以被修改的,而Java字符串的内容是不可修改的(immutable)。

3.取子字符串的操作在 C++ 中叫做substr,这个命令s.substr(i, n) 从字符串s中取得从位置 i 始长度为n的子字符串。

4.在C++中,你只能够将字符串与其它字符串对象相串联(concatenate),而不能够与任意的对象相串联。

5.C++中可以直接使用关系操作符 ==、 !=、 <、 <=、 >、 >= 来进行字符串比较,其中后面四个操作符是按字母顺序进行比较的。 这比Java中使用函数equals和compareTo来比较要方便很多。

2.变量和常量

在C++中,本地变量的定义看起来与Java中相同,例如:

int n = 5;

实际上这正是C++和Java的一个重要不同之处。C++编译器不对本地变量进行初始化检验,所以在C++中很容易忘记初始化一个变量,这种情况下,变量的值该变量所占内存区域中刚好当前存在随机值。这显然是很容易产生程序出错的地方。

与Java一样, C++中类可以有数据域和静态变量。不同的是,C++中变量可以在函数甚至是类的外面定义,这些所谓的全局变量可以在程序的任何函数中被访问,因而不易被很好的管理。所C++中应该尽量避免使用全局变量。

在C++中,常量可以在任何地方被定义(记得在Java中,常量必须是类的静态数据static data)。 C++ 使用关键字 const 来定义常量,而Java中是 final。例如:

const int DAYS_PER_YEAR = 365;

Java与C++编程的不同(2)

时间:2010-12-23

3.类C++

中对类的定义与Java有些不同,这里是一个例子:一个C++ 版本的Point 类:

class Point /* C++ */ { public: Point(); Point(double xval, double yval); void move(double dx, double dy); double getX() const; double getY() const; private: double x; double y; };

这里几点重要的不同是:

1.C++的类定义中分为公共和私有部分,分别以关键字 public 和 private开始。而在Java中,每一个元素都必须标明 public 或 private;

2.C++中类的定义只包含函数的声明,真正的实现另外单独列出;

3.访问函数(accessor methods)标有关键字 const ,表明这个函数不会改变本对象的元素值;

4.类定义的结尾处有分号。

类中函数的实现跟在类的定义之后。因为函数是在类外面定义的,所以每一个函数的名字前面要加类名称作为前缀,并使用操作符双冒号::来分割类的名称和函数的名称。不改变隐含参数值(即当前对象的值)的访问函数用 const标明。如下所示是上面类定义中的函数的实现:

Point::Point() { x = 0; y = 0; } void Point::move(double dx, double dy) { x = x + dx; y = y + dy; } double Point::getX() const { return x; }

Java与C++编程的不同(3)

时间:2010-12-23

4.对象

Java与C++最主要的不同在于对象变量的使用。在C++中,对象变量存储的是真正的对象的值,而不是对象引用

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号