这两天为了完成编译工程的实验使用java进行编程,主要有三点引起了我的
注意。
一、java的类也有public private之分,而且每一个java源文件只能有一个
public类。
二、导入包的格式让我纠结了下,格式是:import 包名.类名|*;
三、java取消了指针这个非常强悍却又容易出错的概念,就这一个实验带给
我的感受就是很不方便。首先介绍点基础知识,java的函数有两种传递方式
,传值和传引用,区别的标志是参数的类型,基础类型(int char 等)->
不方便,因为如果参数是基础类型的话你是无法将其作为输出的,除非将这
行C=D,则C和D实际上都指向了同一个对象,如果要复制对象则需要采用一
与C++中的引用比较的话,你会发现它们不是全部相同的。在C++中,引用是
显示的,而且必须要初始化,即指明所引用的对象;在java中引用全部是隐
式的,不需要特别的声明,只要声明一个类的对象就会默认为一个引用,而
且这个引用可以不初始化(再此感觉有些别扭,我感觉理解为句柄更让人好
接受)。C++中引用初始化之后是不可以更改所指对象的;而java中可以(
的参数上使用时会比较容易出错。如果只对一个类进行声明,没有调用构造
注意。
一、java的类也有public private之分,而且每一个java源文件只能有一个
public类。
二、导入包的格式让我纠结了下,格式是:import 包名.类名|*;
三、java取消了指针这个非常强悍却又容易出错的概念,就这一个实验带给
我的感受就是很不方便。首先介绍点基础知识,java的函数有两种传递方式
,传值和传引用,区别的标志是参数的类型,基础类型(int char 等)->
传值,类类型->传引用。
不方便,因为如果参数是基础类型的话你是无法将其作为输出的,除非将这
个基础类型包装下(比如将int 类型包装为int[1])。
行C=D,则C和D实际上都指向了同一个对象,如果要复制对象则需要采用一
些其它的手段,我目前不是很了解为什么要这样,给我的感觉不是很方便。
与C++中的引用比较的话,你会发现它们不是全部相同的。在C++中,引用是
显示的,而且必须要初始化,即指明所引用的对象;在java中引用全部是隐
式的,不需要特别的声明,只要声明一个类的对象就会默认为一个引用,而
且这个引用可以不初始化(再此感觉有些别扭,我感觉理解为句柄更让人好
接受)。C++中引用初始化之后是不可以更改所指对象的;而java中可以(
通过对象名进行复制操作)。通过这两点的对比,对一个C/C++程序员来说
将java中的引用理解为指针或是句柄是更易接受的。
的参数上使用时会比较容易出错。如果只对一个类进行声明,没有调用构造
函数的话这是一个引用,不是真正的对象,这时可以理解为某个对象的别名。
如果将这个引用传入函数,那么这个参数也是某个对象的别名,在函数中new
一个对象然后让形参指向这个对象。那么形参会也指向这个对象吗?答案是不
会。如果你将引用理解为指针,这个问题其实非常好回答。如果你没有理解为
指针,那么你要注意,这个引用所指的内容是可以变化的,在你对形参赋值的
那一刻,形参和实参已经指向两个不同的对象,对形参所指对象的任何操作都
不会影响到实参所指的对象。
为了更深入的理解下java的引用,不妨想一想在java中链表怎样实现?怎
样实现带头结点和不带头节点的?
本人的一些拙见,希望高人能指出不足