×

java数组作为参数传入函数 函数

java数组作为参数传入函数(JAVA调用函数传入数组问题)

admin admin 发表于2024-07-31 17:33:01 浏览6 评论0

抢沙发发表评论

“java数组作为参数传入函数”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看java数组作为参数传入函数(JAVA调用函数传入数组问题)!

本文目录

JAVA调用函数传入数组问题

【这段程序总共就3个方法】:void main(string args);//主方法void pp(int x);//打印的方法int init()/;/给int数组赋值的方法【调用关系】:void main(string args)中,pp()负责打印出传进来的int数组。【int init()分析】:public static int说明这个方法会返回一个int数组int x;//申请并分配空间for(int y=0; y《x.length; y++){//从1到10循环赋值给int数组x = y+1;}return x;//return后面跟的是返回的值,x就是一个int数组}【void pp(int x)分析】:public static void pp(int x){//前面加void说明这个方法没有返回值for(int y=0;y《x.length;y++){//循环打印传进来的int数组system.out.println("数组);}}【void main(string args)分析】:public static void main(string args){//主函数int ipp(i);//把i(int数组)传入pp()中,打印出i数组}================================================刚开始学编程吧,希望以上的分析对你的理解有所帮助================================================

java 函数参数是数组的时候传递的是值还是引用如果想让他传递数组的

应该是传值的,参考如下内容:被当作参数传入的变量仍然保持了原来的值不变。如果我们把传入的int型变量改为Object型也是一样的,因为Java通过传值来传递引用的

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

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

Student stu;Admin a = new Admin();a.wyx(stu);

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

public void wyx(Student stu){Scanner in = new Scanner(System.in);String name = in.nextLine(); stu.setName(name);System.out.println(stu.getName());}

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

public void wyx(Student stu){Scanner in = new Scanner(System.in);String name = in.nextLine(); Student stud = new Student();stud.setName(name);stu = stud;System.out.println(stu.getName());}

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

stu = new Student();

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

Student stu;

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

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

Student stud = new Student();

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

stu = stud;

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

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

public class 类对类的操作 {public static void main(String args){Student stu;

stuAdmin a = new Admin();a.wyx(stu);}}

另外有一些简单的建议:

  1. 你的代码段里对数组的写法使用的是Student stu stu;

  2. 如果你真的要传递Student stu;,那么有两种建议:

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

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

    if (null == stu) {

        stu = new Student();

    }

java中 数组可以作为形式参数传递到调用的方法中吗要怎么操作

可以,操作代码如下:

public class ArrTest{

public static void doTest(String args){

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

System.out.println(args);

}

}

public static void main(String args){

String testArr = {"a","b","c","d"};

ArrTest.doTest(testArr );

}

}

扩展资料:

把数组作为参数传入一个方法,在该方法中对数组进行一些操作:如果仅仅是插入数据项等一般操作,那么该操作会影响到数组本身;反之,如调整数组大小、对数组赋值等操作,则对数组本身没有影响。

例子:

public class Tester {《br data-filtered="filtered"》

public static void counter(int count) {《br data-filtered="filtered"》

count = 2;《br data-filtered="filtered"》

}《br data-filtered="filtered"》

《br data-filtered="filtered"》

public static void changeA1(int ints) {《br data-filtered="filtered"》

int temp = { 4, 5, 6 };《br data-filtered="filtered"》

ints = temp;《br data-filtered="filtered"》

}《br data-filtered="filtered"》

《br data-filtered="filtered"》

public static void changeA2(int ints) {《br data-filtered="filtered"》

ints = 4;《br data-filtered="filtered"》

ints = 5;《br data-filtered="filtered"》

ints = 6;《br data-filtered="filtered"》

}《br data-filtered="filtered"》

《br data-filtered="filtered"》

public static void main(String args) {《br data-filtered="filtered"》

// Output: 1《br data-filtered="filtered"》

// 基本数据类型没有改变。《br data-filtered="filtered"》

int count = 1;《br data-filtered="filtered"》

counter(count);《br data-filtered="filtered"》

System.out.println("count: " + count);《br data-filtered="filtered"》

《br data-filtered="filtered"》

《br data-filtered="filtered"》

int ints = { 1, 2, 3 };《br data-filtered="filtered"》

《br data-filtered="filtered"》

// Output: 1, 2, 3《br data-filtered="filtered"》

// 对数组赋值,不会改变原始数组。《br data-filtered="filtered"》

changeA1(ints);《br data-filtered="filtered"》

for (int i = 0; i 《 ints.length; i++) {《br data-filtered="filtered"》

System.out.print(ints + " ");《br data-filtered="filtered"》

}《br data-filtered="filtered"》

《br data-filtered="filtered"》

// Output: 4, 5, 6《br data-filtered="filtered"》

// 可以对数组插入新的数据项。《br data-filtered="filtered"》

System.out.println();《br data-filtered="filtered"》

changeA2(ints);《br data-filtered="filtered"》

for (int i = 0; i 《 ints.length; i++) {《br data-filtered="filtered"》

System.out.print(ints + " ");《br data-filtered="filtered"》

}《br data-filtered="filtered"》

}《br data-filtered="filtered"》

}

Java的数组作为参数传入方法和C语言的不同

首先,数组名不是指针,只不过作为参数或返回值时会退化为指针,其次,java 使用值传参(pass_by_value)的方式来传递函数参数,只是值传递方式在处理原始数据类型参数与引用类型参数时候有不同,如果一个参数是原始数据类型,那么参数变量的值传递进去,如果要修改,需要传递引用类型

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

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

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

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

  4. 可变参数的特点:

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

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

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

  5. 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;i《args.length;i++){   sum+=args;  }  return sum; }

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

java如何把数组值传递给另一个函数

public static void main(String args) {     int  array1={1,2,3,4,5,6};     int  array2={1,2,3,4,5,6};        sortArray(array1,array2);}public static void sortArray(int array2){     // .........}

JAVA中字符串和数组作为函数参数 分别是如何传递的

字符串作为值来传递,数组作为对象传递 值传递是不改变原来属性的值的。所以结果是:goodbbbString 确定是值传递,。楼下的高级经理怎么来的?????

关于java数组作为参数传入函数到此分享完毕,希望能帮助到您。