关于java通过方法调用传递一个数组的疑问

例如:通过方法调用传递一个数组?publicclassJavaDemo10{publicstaticvoidmain(Stringargs[]){inti[]=newin... 例如:通过方法调用传递一个数组?
public class JavaDemo10
{
public static void main(String args[])
{
int i[]=new int[10];
init(i); //我不明折,为什么调用init方法,为什么在括号里入输i,而且i的值是多 少
print(i);//我不明折,为什么调用print方法,为什么在括号里入输i,而且i的值是多少
}
//声明一个方法,要求此方可以为数组中的内容初始化内容
//把堆内存空间的内容取出,之后在方法中进行加工
public static void init(int x[]) // (int x[])是接收i[]传递过来的数组,但x[]没有说等于i[]呀。
{
for (int y=0;y<x.length;y++)
{
x[y]=y+1;
}

}
public static void print(int x[])// (int x[])是接收i[]传递过来的数组,但x[]没有说等于i[]呀。
{
for (int y=0;y<x.length;y++ )
{
System.out.println("数据i["+y+"]="+x[y]);
}
}
}
展开
 我来答
568145421
推荐于2016-06-13 · 知道合伙人软件行家
568145421
知道合伙人软件行家
采纳数:1353 获赞数:6756

向TA提问 私信TA
展开全部
你好,我把答案写在注释上了。
public class JavaDemo10 {
public static void main(String args[]) {
//java的基本思想一切皆为对象 下面的语句定义一个整型数组对象,长度为10
int i[] = new int[10];
// 调用init是为了初始化数组对象,
//括号里输入i是因为你写的init方法接收一个整型数组的参数
//i的值你可以使用System.out.println(i);进行观察,其实就是它在内存中的地址
init(i);
// 调用print是为了按照你要的方式输出数组中的元素,
//括号里输入i是因为你写的print方法接收一个整型数组的参数
//i的值你可以使用System.out.println(i);进行观察,其实就是它在内存中的地址
print(i);// 我不明折,为什么调用print方法,为什么在括号里入输i,而且i的值是多少
}
public static void init(int x[]) // 因为x[]只是一个形参,你传递的是实参,只要类型一样就能接收
{
for (int y = 0; y < x.length; y++) {
x[y] = y + 1;
}
}

public static void print(int x[])//因为x[]只是一个形参,你传递的是实参,只要类型一样就能接收
{
for (int y = 0; y < x.length; y++) {
System.out.println("数据i[" + y + "]=" + x[y]);
}
}
}
圣鸾OJ
2015-09-30 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:110万
展开全部
你好,我把答案写在注释上了。
public class JavaDemo10 {
public static void main(String args[]) {
//java的基本思想一切皆为对象 下面的语句定义一个整型数组对象,长度为10
int i[] = new int[10];
// 调用init是为了初始化数组对象,
//括号里输入i是因为你写的init方法接收一个整型数组的参数
//i的值你可以使用System.out.println(i);进行观察,其实就是它在内存中的地址
init(i);
// 调用print是为了按照你要的方式输出数组中的元素,
//括号里输入i是因为你写的print方法接收一个整型数组的参数
//i的值你可以使用System.out.println(i);进行观察,其实就是它在内存中的地址
print(i);// 我不明折,为什么调用print方法,为什么在括号里入输i,而且i的值是多少
}
public static void init(int x[]) // 因为x[]只是一个形参,你传递的是实参,只要类型一样就能接收
{
for (int y = 0; y < x.length; y++) {
x[y] = y + 1;
}
}

public static void print(int x[])//因为x[]只是一个形参,你传递的是实参,只要类型一样就能接收
{
for (int y = 0; y < x.length; y++) {
System.out.println("数据i[" + y + "]=" + x[y]);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘了我是谁啊
2011-09-04 · TA获得超过246个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:277万
展开全部
那个init()和print()里面是不是因该放i[]啊?反正他的意思就是把数组i[]放进去执行

你是才学习JAVA啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-04
展开全部
java 传参有两种类型。传值(值传递)和传地址(引用传递)
public static void init(int x[]) 引用的是init(i);中i的地址
public static void print(int x[]) 引用是print(i);中i的地址
x[]都是引用类型
基本类型参数都是值传递,引用类型像数组,集合都是引用传递,值传递后你改变参数的值,原来的数不会改变,就相当于重新开辟一块空间,改变的是新空间的值,引用传递,是把引用(i的地址)传过去了,没有开辟空间,你改变值还是改变原来空间的值,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
2015-06-19 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1699万
展开全部
那就返回值定义为List类型就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式