Android如何从void函数返回值?

时间:2017-01-11 05:51:07

标签: android

我正在浏览这个函数getLocationOnScreen()

void getLocationOnScreen(int [] outLocation)

计算屏幕上此视图的坐标。参数必须是两个整数的数组。方法返回后,数组按顺序包含x和y位置。

我在这里不明白的是,如果我传递的数组是这样的,

int position[] = new int[2];

view.getLocationOnScreen(position);

返回类型的函数是void我的数组如何包含那些没有返回函数的值?

注意:这个问题与下面的问题不重复,因为它解释了2种方法的工作原理。

getLocationOnScreen() vs getLocationInWindow()

2 个答案:

答案 0 :(得分:0)

基本类型将通过复制它来传递变量值,因此在方法完成后该值不会更改。但是如您所见,您使用关键字newnew int[2])创建了一个数组类型,所以这个变量是一个对象类型,当你将param传递给方法时,它就是数组的引用。

在Java中,基元类型按值传递,而对象类型通过引用传递,您不能选择使用操作&

来传递地址,如C

答案 1 :(得分:0)

它是关于从内存中引用一个对象的。您发送的是对象地址,这意味着地址引用了您的对象。以及使用此对象的地址的功能。通过这种方式,该函数可以更改对象的值,但不能更改地址。 在这里,这个想法来自C language

并在java中使用:

  

Java的工作方式与C完全相同。您可以指定指针,将指针传递给方法,按照方法中的指针操作并更改指向的数据。但是,您无法更改指针指向的位置