您的位置:首页 > 编程语言 > C语言/C++

C/C++程序员入门java的一些总结与思考

2013-05-29 01:40 1251 查看
这两天为了完成编译工程的实验使用java进行编程,主要有三点引起了我的

注意。

一、java的类也有public private之分,而且每一个java源文件只能有一个

public类。

二、导入包的格式让我纠结了下,格式是:import 包名.类名|*;

三、java取消了指针这个非常强悍却又容易出错的概念,就这一个实验带给

我的感受就是很不方便。首先介绍点基础知识,java的函数有两种传递方式

,传值和传引用,区别的标志是参数的类型,基础类型(int char 等)->

传值,类类型->传引用。

说完这点基础知识我不得不吐槽下对基础类型只能传值方式传递真的很

不方便,因为如果参数是基础类型的话你是无法将其作为输出的,除非将这

个基础类型包装下(比如将int 类型包装为int[1])。

另一点是java的对象声明全部是引用,比如声明两个对象C、D,然后执

行C=D,则C和D实际上都指向了同一个对象,如果要复制对象则需要采用一

些其它的手段,我目前不是很了解为什么要这样,给我的感觉不是很方便。

由于C/C++用的比较多,我总喜欢拿java与它们对比。将java中的引用

与C++中的引用比较的话,你会发现它们不是全部相同的。在C++中,引用是

显示的,而且必须要初始化,即指明所引用的对象;在java中引用全部是隐

式的,不需要特别的声明,只要声明一个类的对象就会默认为一个引用,而

且这个引用可以不初始化(再此感觉有些别扭,我感觉理解为句柄更让人好

接受)。C++中引用初始化之后是不可以更改所指对象的;而java中可以(

通过对象名进行复制操作)。通过这两点的对比,对一个C/C++程序员来说

将java中的引用理解为指针或是句柄是更易接受的。

由于以上两点引用方面的不同,在使用java中的引用时,尤其是在函数

的参数上使用时会比较容易出错。如果只对一个类进行声明,没有调用构造

函数的话这是一个引用,不是真正的对象,这时可以理解为某个对象的别名。

如果将这个引用传入函数,那么这个参数也是某个对象的别名,在函数中new

一个对象然后让形参指向这个对象。那么形参会也指向这个对象吗?答案是不

会。如果你将引用理解为指针,这个问题其实非常好回答。如果你没有理解为

指针,那么你要注意,这个引用所指的内容是可以变化的,在你对形参赋值的

那一刻,形参和实参已经指向两个不同的对象,对形参所指对象的任何操作都

不会影响到实参所指的对象。

为了更深入的理解下java的引用,不妨想一想在java中链表怎样实现?怎

样实现带头结点和不带头节点的?

本人的一些拙见,希望高人能指出不足
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: