「java数组做函数参数」java 函数做参数

博主:adminadmin 2022-12-28 05:18:09 75

今天给各位分享java数组做函数参数的知识,其中也会对java 函数做参数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java里数组如何作为参数传递给方法,以及如何在方法中返回数组?

定义方法的时候可以在参数列表中定义传入参数的类型 例如

void method( int[] a)

或者使用可变参数

void method(object…obj)

而方法的返回值在方法内使用return定义 同时方法定义中的返回值类型也要同 return后的数据类型一致

例如

public int[] method(){

//代码块…

return 数组名;

}

希望能帮到你

java中数组是怎么作为函数参数进行传递的

举个例子和你说。

传递数组参数:

1. 传递数组

要传递数组到方法里,只要指明传入的参数是一个数组即可。

例:

public class ArrayDemo //定义主类

{

public static void main(String args[])

{

int a[]={8,23,7,6,9,23}; //定义一维数组

ArrayDemo min=new ArrayDemo (); //创建对象

min.arrayMin(a); //将一维数组a传入least()方法

}

public void arrayMin(int array[]) //参数array[]接受一维整形数组

{

int temp=array[0];

for(int i=0;iarray.length;i++)

if(temparray[i])

temp=array[i];

System.out.println("最小的数为:"+temp);

}

}

从该例中可以看出,如果要将数组传递到方法里,只需在方法名后的括号内写上数组的名即可。二维数组的传递与一维数组相似,在需在方法里声明传入的参数是一个二维数组。

在Java中数组作为方法的参数的一个问题。

public static int add(int[] a)和public static int add(int a[])中的参数定义是相同的,都表示int类型的不定长数组,即数组的长度不同。

ublic static int add(int...a)中的int...a在java中称作可变参数,意思是这个add方法的参数是不固定的.相关特性如下,

Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。

可变参数的特点:

(1)只能出现在参数列表的最后;

(2)...位于变量类型和变量名之间,前后有无空格都可以;

(3)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中 以数组的形式访问可变参数。

public class Varable {

 public static void main(String [] args){

  System.out.println(add(2,3));

  System.out.println(add(2,3,5));

 }

 public static int add(int x,int ...args){

  int sum=x;

  for(int i=0;iargs.length;i++){

   sum+=args[i];

  }

  return sum;

 }

可以这样认为,可变参数只是数组的一种增强型,适用于工具类的封装,比如java的dao层Dbutl工具类,使用PreparedStatement进行预编译sql语句时,由于占位符的数量未知,我们就可以使用可变参数来设置占位符的数量

java类中用类的数组作为函数参数传给类,为什么不能直接对类的数组进行操作?

你说不行的代码段,关键在这:(简称为代码①)

Student stu[] = new Student[5];

Admin a = new Admin();

a.wyx(stu);

以及调用的时候:(简称为代码②)

public void wyx(Student stu[])

{

Scanner in = new Scanner(System.in);

String name = in.nextLine();

stu[0].setName(name);

System.out.println(stu[0].getName());

}

而后面你说可以的方法是这样的(简称为代码③)

public void wyx(Student stu[])

{

Scanner in = new Scanner(System.in);

String name = in.nextLine();

Student stud = new Student();

stud.setName(name);

stu[0] = stud;

System.out.println(stu[0].getName());

}

为什么不可以?这里你首先要清楚你在wyx方法里用到的形参是一个Student对象的数组,在代码②中,你直接使用stu[0].setName(name);,那么要想取得它的前提就是你的下标0有存在的对象,也就是你必须在你代码①里给你的stu 对象的0下标赋值,也就是:

stu[0] = new Student();

否则你只是给数组开辟了大小,但并未在相应的位置给定实例化的对象,那么你在代码段②里直接引用是引用到空指针上的,并不存在对象。恰好你在代码①中就只是使用了

Student stu[] = new Student[5];

并没有对数组里的做对象的初始化,所有你这个代码运行时会出错。

代码段③里,就恰恰符合上面所说,你创建一个新的对象:

Student stud = new Student();

再给它赋值了name,最后把这个对象给了stu数组对象的0下标

stu[0] = stud;

这样你的stu[0]具有正确的对象引用,你在后面的输出中调用它就正常了。

如果说你要前面方法可用,改为下面方式:

public class 类对类的操作 {

public static void main(String[] args)

{

Student stu[] = new Student[5];

stu[0] = new Student();  -- 这里创建一个新的Student实例,并让stu[0]引用,只是根据你后面方法只引用了stu[0]

Admin a = new Admin();

a.wyx(stu);

}

}

另外有一些简单的建议:

你的代码段里对数组的写法使用的是Student stu[],那么比较建议的写法是Student[] stu;

如果你真的要传递Student stu[] = new Student[5];,那么有两种建议:

① 你给你的数组对象先实例化好,可以用循环,如果没学到循环,可以一个一个创建;

② 如果不想在创建时候就实例化,那么也可以在使用的时候进行判断,判断如果是空引用,不包含对象再进行实例化,关键代码如下:

if (null == stu[0]) {

  stu[0] = new Student();

}

关于JAVA中数组做参数

按照楼主的例子

Shuzu go=new Shuzu();

String a[][]=new String[4][4];

Shuzu的 shuzu()方法可以这么写

String[][] shuzu(a){

return a;

}

String b[][]=go.shuzu(a);

java函数中怎么用数组做参数

String[] args 这个字符串数组是保存运行main函数时输入的参数的,例如main函数所在的类名为test 那么你在cmd运行 java test a b c 时,args[0] = a ,args[1]=b, args[2]=c 你就可以在你的程序中调用你输入的这些变量了。

(1)args[]不就是那个字符串This is a simple Java program嘛!

-------完全不是的,理解不对。运行的时候加个参数,比如 java test XX。然后在main函数里面加这段话:System.out.println("arg is"+args[0]),然后看看输出是不是这个:

This is a simple Java program

arg is XX

(2)在运行时输入java test xx yy zz,并且在main函数里面加这段话:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是不是:

This is a simple Java program

arg is xx yy zz

总结:不带String args[]的main函数和带String args[]的main函数,本质上已经不是同一个函数了,java 本身不存在不带String args[]的main函数。

关于java数组做函数参数和java 函数做参数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。