关于JAVA的方法参数是类对象的问题

来源:百度知道 编辑:UC知道 时间:2024/05/02 06:50:27
class passparam
{
int x;
public static void change(passparam obj)
{
obj.x=3;
}
public static void main(String args[])
{
passparam obj=new passparam();
obj.x=5;
change(obj);
System.out.println(obj.x);
}
}
问题一:obj 是类对象,那么change(obj);这句中的obj传递的是什么?obj的结果是一个值还是什么变量?
二:change(passparam obj)这句的obj传递的是什么?是一个值还是一个类?
学java这几天,看到这儿有就点不太明白,类做为参数,希望朋友能给帮助,解说的越清楚越好,谢谢!!!
谢谢,一定努力。看了这么多朋友的回答,感动中。有点不明白,change(obj)这个引用是其中的参数应该是一个passparam的一个实例对象的地址。是不是些时如果这个实例对象的值是多少,这个change(0bj)就可以把obj换成多少,不过这时他所用的是和实参为同一个地址,他所修改的数值同样也影响着这个实参。不过还是有一点现在还没有搞懂,自己先想想,看看书。谢谢 ngc1987

问题1:
传递的是你new 出的那个对象的引用
在你调用change(obj)这个方法之后,obj中的变量就变成3了
问题2:
传递的是对象的引用
不是值也不是类,是对象在内存空间的地址

其实要讲的话,去看书最好,
好好干我看好你哦

传递的是obj这个对象在内存中的地址,比如(OX123456), obj的结果是一个值还是什么变量?不明白你说的是什么。

不知道你明白不明白 值传递还是引用传递的区别。

简单的说,基本数据类型(int,long这些是值传递。)

对象类型传递的是 引用(也叫句柄,你可以理解为这个对象在内存中的地址)

你没悬赏分,我只能说到这了

对,只不过change(passparam obj),这个obj是这个passparam类类型的变量。特殊些。

而change(obj),这个obj传递的是你new出来的类对象。它指向的是这个对象的内存地址。

1.change(obj)这句传递的是一个对象,为的是在chang方法中引用这个对象,所以在定义change方法的参数的类型时也要定义成passparam(你定义的类类型)型。
2.这个里面的obj就是一个你所定义的类类型的变量,如果按下面那样传递值时,这里面必须用passparam来定义。

passparam obj.您感觉这一句是类么??、这不是一个passparam类的对象么?
obj的结果当然是一个变量;这里的passparam obj和String str是一个意思呀