初看java,有点不明白,望诸位指教

linyudie 2003-09-12 07:32:52
java没有了传统的指针,那么我要是想靠参数返回变化怎么办?

java有像C++里的引用么??希望给我指点一下.我现在没有基础的书,只是看了几个程序,翻翻规范而已,一时找不出,希望高手不要骂我
...全文
44 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
linyudie 2003-09-15
  • 打赏
  • 举报
回复
谢谢 bw78619(Genghis Khan) :)

至于前面几位说的方法,我问之前就已经想过了,试过也没有问题,但是觉得不如C++的引用更方便一些,看书上没有,所以才跑了来,

我不想看书是因为我现在并不真的使用java,我看程序一般没有什么问题,各种C/C++,几种asm,马马虎虎的话delphi,ada也可以,所以我不想从头看太基础的东西了,不要太难为的话,给我一小点代码也可以,不用为我担心,呵呵 :)

我主要使用的是C和相应处理器的asm,其实连C++都不经常使用,而且我主要是编内核程序,所以我所指的指针是对内存的访问,而java中看起来更像是对象的概念,既然java一定程度的隐蔽了指针,我就不认为它会把引用和指针统一起来,可以想象一下exploit的时候我们是怎么做的,所以我当时认为也许java会有一种专门提供的方法,就编译而言,我想要的是bw78619(Genghis Khan)说的那种方法在语言上的扩展.
xiyucsdn 2003-09-14
  • 打赏
  • 举报
回复
各位高手,不要一味的责怪人家,我也遇到过类似的问题,初学编程,遇到某个怎么看也看不懂的在别人看来是很愚蠢的问题,在找了很长时间资料后终于崩溃,那时是真的希望有个人能指点迷津,到论坛虚心上求助高手,说明人家没有放弃,这种精神是值得赞扬的,是不是应该耐心的帮助别人一下呢?
bw78619 2003-09-14
  • 打赏
  • 举报
回复
对于简单类型如int,float,char,用他们的wrap类即可,如:
/* c program */
void foo(int *a)
{
*a = 10;
}
在Java中写为:
void foo(java.lang.Integer a)
{
a.setValue(10);
}
pippo8888 2003-09-14
  • 打赏
  • 举报
回复
楼上那位真是说的太好了。重要的是精神,有这样的精神,成功不是问题!
Iforgot 2003-09-13
  • 打赏
  • 举报
回复
Object obj=new Object();
......
void method(Object obj) {
...
obj.doSomething();
...
}
......
method(obj)可以改变obj的状态

//////////////////
以上代码只是提示,说明java传对象时传引用,传值时是传值(其实引用也是传值、传引用的值) 在函数体对引用进行操作,引用的对象就会改变。
swinging 2003-09-13
  • 打赏
  • 举报
回复
纠正下:你仍然是可以使用当前的对象引用访问到对象的,而且是同一个方法,
最后应该是说:同一个对象。
好像说了一堆“最后”,BLUSH,
可惜这里我没有找到修改帖子的功能。
swinging 2003-09-13
  • 打赏
  • 举报
回复
linyudie(蝴蝶夜雪) ,不想看书就想学好东西,靠在论坛上问问题来提高,
这种想法不知道你是怎么产生的,
这样做无异于南辕北辙,舍近取远。如果你一定要这么做,无话可说。

另外,JAVA里面有没有指针一说,
我想这个最基本的是要搞清楚到底你自己想的指针是什么意思,
没有绝对的界限,只要你理解了JAVA的引用,那么完全可以认为它就是指针,
但是注意,我说它是指针,但是不指的C里面的指针,好了,为了区别它们我还是叫引用吧,
在JAVA中没有象c指针这样的东西存在的,实际上,JAVA的引用我认为也应该区别于C的引用,
最后,不要把JAVA和C比,两者没有可比性,也没有必要,
既然你要学JAVA,那么就抛开c,从头开始好好学JAVA,不但是JAVA语法,更重要的是面向对象的思想,如果你非要和C比比,那是自找麻烦,注意,我说的是抛掉c的语法概念,c里面好的东西还是可以借鉴的。
这里和学英语是一个道理,完全融入一个英语的环境会让你学得更好更快,
最好思维上也转变,要不难免不说出中国英语。

所以说,java有java得解决方法,不要一有问题就想到,哦,我原来用c得时候是这么解决得,用java应该是这样。

最后:引用:那么我要是想靠参数返回变化怎么办?
这个问题太抽象,问问题最好说明清楚,要不大家不好回答,
什么叫用参数返回变化?
这有很多解释得,简单得,你想执行完一个方法后返回一个值来表明结果,那么你简单的
RETURN一个值就可以了啊,
如果你的想法是,你有一些数据,想让这个方法处理一下,比如排序,但是处理完成后你仍然要掌握这些数据,当然这些数据已经经过了必要的处理,
这里有一些不同的方式,简单的,你可以把这些数据组织成对象传递给方法处理,
这里你要理解JAVA的对象引用和JAVA的参数传递机制,
JAVA是传值的,JAVA的对象引用被作为参数传递进入方法,你仍然是可以使用当前的对象引用访问到对象的,而且是同一个方法,
所以结论是尽管让方法处理你的对象好了,执行完成之后,你直接再使用之前的对象引用访问这个对象就可以,所以这么做不需要返回值。

最后,如果有人说java里有指针,那么请不要妄下结论,认为这个说的指针的含义和c里面的指针的含义是一样的。
只是一个词而已,可以很多解释的,真正需要的是理解java引用本身,那么用哪个词来说明它就次要了,当然,c指针的含义基本上成了普遍的对指针这个词的解释,有必要用“引用”这个词来形容。

再举个例子,可能不是很好,
假设有一个数组A,然后有一个INT P,呵呵,这个变量P专门被用来访问A中的元素,
因为要有一定顺序来访问,所以用一个P来会方便一些把,
这个时候我会说P是一个指针,
因为我认为这才是指针的原意。

ice119103 2003-09-13
  • 打赏
  • 举报
回复
Java里有指针( <<Think In Java>>中看的)
说出这句话说明你根本就没有好好看<<Think In Java>>
wineboy83567558 2003-09-13
  • 打赏
  • 举报
回复
不看书怎就想一口吃个大胖子?学任何都要从基础做起!
lxw1983 2003-09-13
  • 打赏
  • 举报
回复
首先同意楼上的观点,Java里有指针( <<ThinkInJava>>中看的),但是有些书中说Java中没有指针,老师上课也是这么说的。所以现在还有些模糊,希望有道理的说服。
还有我没学过C++,只学过C。不明白你们说的引用是什么意思,能给个Java的例子吗?谢谢!
huhaowen1978 2003-09-13
  • 打赏
  • 举报
回复
java里任何一个对象的实例都是引用,都是指针,就是简单的基本变量也是
JavaBoyCaoJi 2003-09-12
  • 打赏
  • 举报
回复
JAVA中有引用!
dongzi7945 2003-09-12
  • 打赏
  • 举报
回复
JAVA是传值调用!即建立一个对参数值的拷贝!
JAVA中有引用!
peng14331 2003-09-12
  • 打赏
  • 举报
回复
java 里当然有引用,java里省略了指针,是基于安全方面的考虑。

其实你问的是关于语言方面的细节问题,
你应该先找相关的资料看看,
是否复合你的愿望,
确定要学它,就找本书系统的看看,你会明白的多
不要左顾右盼,现在各方面的语言很多,但关键是抓住一门,学精它


noratong 2003-09-12
  • 打赏
  • 举报
回复
java省去了C++里面最为繁琐的指针,这是它比C++好的一个地方。java中的每个变量和对象都可以看成是C++中的引用
如果你想靠参数来返回变化,那也好办。只要你在这个方法(也就是函数)所在的类里面定义你想返回的变量,再函数里改变它,再函数外一样引用它。
如果不想这样,那你就老老实实的返回这个参数。(有多个时只能用上面那个方法)
xinshou1979330 2003-09-12
  • 打赏
  • 举报
回复
给例子也是很难看懂的
简单的没有实际意义
难的你看不懂
如果你对它敢兴趣、想学
就学吧
不要问这些没有用的问题了
linyudie 2003-09-12
  • 打赏
  • 举报
回复
那请问它长什么样子?给我说个例子看一眼成么?我不想找书了:)
cctvnet 2003-09-12
  • 打赏
  • 举报
回复
参数可以用数组或类
tomcatjava 2003-09-12
  • 打赏
  • 举报
回复
传入类对象,并将要修改的变量定义为此类的成员变量!!!
joy_wind 2003-09-12
  • 打赏
  • 举报
回复
java里有引用

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧