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

2024-06-17 17:57:47 32

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

本文目录

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

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

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中 数组可以作为形式参数传递到调用的方法中吗要怎么操作

可以,操作代码如下:

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如何把数组值传递给另一个函数

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类中用类的数组作为函数参数传给类,为什么不能直接对类的数组进行操作

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

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 函数参数是数组的时候传递的是值还是引用如果想让他传递数组的

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

在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中字符串和数组作为函数参数 分别是如何传递的

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

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

本文编辑:admin

本文相关文章:


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

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

本文目录JAVA中字符串和数组作为函数参数 分别是如何传递的java中 数组可以作为形式参数传递到调用的方法中吗要怎么操作JAVA调用函数传入数组问题java如何把数组值传递给另一个函数在Java中数组作为方法的参数的一个问题Java的数组

2024年7月1日 06:12

更多文章:


最新AVA透视?AVA怎么那么多透视

最新AVA透视?AVA怎么那么多透视

本文目录最新AVA透视AVA怎么那么多透视AVA透视Gava 里面观战时看见有的人透视 有的没有 怎么回事最新AVA透视“桃江县防汛办提供的灾情汇报材料把我吓了一跳,没想到受灾这么严重!”张明对法治周末记者说。 为了更加直观地了解灾情

2024年5月28日 19:37

wipeout(CAD中的wipeout命令怎么用)

wipeout(CAD中的wipeout命令怎么用)

本文目录CAD中的wipeout命令怎么用怎么用wipeout遮住图层在CAD中这个wipeout是什么快捷键CAD wipeout遮挡命令怎么使用有什么样的步骤,求详细解答谢谢请问中wipeout命令怎样遮盖图层wipeout命令的使用中

2024年5月11日 21:15

iphone7 home键(iphone7的home键怎么设置)

iphone7 home键(iphone7的home键怎么设置)

本文目录iphone7的home键怎么设置苹果7home键失灵修复方法iphone7的Home键能不能按下去iphone7怎么设置home键苹果7home键是按压的还是触摸的iphone7home键按压失灵iphone 7的home键怎么设

2024年7月15日 12:13

查看电脑配置指令(查看电脑详细配置的运行命令是什么)

查看电脑配置指令(查看电脑详细配置的运行命令是什么)

本文目录查看电脑详细配置的运行命令是什么如何看自己电脑是32位还是64位win+r怎么看电脑配置怎么查电脑硬件配置信息w10怎样查看电脑配置如何查看windows是32位还是64位查看电脑配置的命令查看电脑详细配置的运行命令是什么通过在运行

2024年5月26日 06:28

svchost exe(任务管理器svchost.exe 多是怎么回事)

svchost exe(任务管理器svchost.exe 多是怎么回事)

本文目录任务管理器svchost.exe 多是怎么回事svchost.exe是什么svchost.exe是什么意思svchost.exe是什么文件svchost.exe应用程序错误怎么办,我来告诉你svchost.exe - 应用程序错误

2024年6月21日 11:55

三星I9300国际版,联通版移动版,电信版到底有什么区别?三星I9300手机怎么样

三星I9300国际版,联通版移动版,电信版到底有什么区别?三星I9300手机怎么样

本文目录三星I9300国际版,联通版移动版,电信版到底有什么区别三星I9300手机怎么样i9300手机发烧三星手机I9300不能上网了,是怎么回事三星i9300发不出短信收不到短信三星gti9300无法开机三星i9300i怎么连接电脑三星I

2024年6月24日 22:47

qq小号自助购买网站(怎么申请免费QQ小号)

qq小号自助购买网站(怎么申请免费QQ小号)

各位老铁们好,相信很多人对qq小号自助购买网站都不是特别的了解,因此呢,今天就来为大家分享下关于qq小号自助购买网站以及怎么申请免费QQ小号的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录怎么申请免费QQ小号qq

2024年6月4日 04:56

draw是什么意思(draw是什么意思中文)

draw是什么意思(draw是什么意思中文)

这篇文章给大家聊聊关于draw是什么意思,以及draw是什么意思中文对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录draw是什么意思中文draw英语是什么意思draw是什么意思draw 是什么意思draw是什么意思英语dra

2024年6月13日 03:49

gta 5下载(gta5在哪可以下载)

gta 5下载(gta5在哪可以下载)

大家好,如果您还对gta 5下载不太了解,没有关系,今天就由本站为大家分享gta 5下载的知识,包括gta5在哪可以下载的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录gta5在哪可以下载gta5上哪下载哪个网址可

2024年9月9日 19:01

中金证券官网(中金证券 网上交易系统下载)

中金证券官网(中金证券 网上交易系统下载)

各位老铁们,大家好,今天由我来为大家分享中金证券官网,以及中金证券 网上交易系统下载的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录中金证券 网上交

2024年6月28日 23:43

百度贴吧小尾巴(百度贴吧上很长的小尾巴怎么弄的)

百度贴吧小尾巴(百度贴吧上很长的小尾巴怎么弄的)

本文目录百度贴吧上很长的小尾巴怎么弄的百度贴吧中,“小尾巴”怎么打出来百度贴吧上很长的小尾巴怎么弄的步骤:1、百度搜索贴吧助手客户端下载并下载。2、安装后在手机上打开贴吧助手,先登录自己的贴吧账号。登录后点击底部导航菜单的设置。3、在设置里

2024年5月15日 02:36

口袋西游好玩吗(口袋西游好玩吗)

口袋西游好玩吗(口袋西游好玩吗)

本文目录口袋西游好玩吗口袋西游什么是一款怎么样的游戏梦幻西游和口袋西游比起来哪个更好玩梦幻西游和口袋西游哪个好玩些口袋西游比梦幻西游好玩吗口袋西游好玩吗这款游戏是任务型的游戏不做任务的话,基本上很难升级,这游戏的装备用来打怪刷任务的话是没问

2024年5月5日 18:00

windows7系统镜像(win7镜像是什么)

windows7系统镜像(win7镜像是什么)

“windows7系统镜像”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看windows7系统镜像(win7镜像是什么)!本文目录win7镜像是什么windows7 ISO镜像是什么怎么用镜像安装win7系统详细步骤WIN7

2024年7月23日 08:14

变色龙吃糖果(变色龙吃什么)

变色龙吃糖果(变色龙吃什么)

本文目录变色龙吃什么怎么养变色龙它吃什么食物变色龙都可以吃什么食物变色龙怎麼吃东西变色龙吃的什么食物变色龙的生活习性是什么变色龙饲养的注意事项有哪些变色龙吃什么 很多变色龙都不喜欢喝静止的水 变色龙因为其“变色”的能力而使得很多人对其倍感兴

2024年5月17日 07:14

手机版秒破qq密码(qq密码破解大师免费版v2.1.21安卓最好用吗)

手机版秒破qq密码(qq密码破解大师免费版v2.1.21安卓最好用吗)

这篇文章给大家聊聊关于手机版秒破qq密码,以及qq密码破解大师免费版v2.1.21安卓最好用吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录qq密码破解大师免费版v2.1.21安卓最好用吗怎么盗自己的qq密码教程手机怎么通过

2024年4月19日 08:45

恶意代码通常分为?什么是恶意代码啊

恶意代码通常分为?什么是恶意代码啊

本文目录恶意代码通常分为什么是恶意代码啊恶意代码命名的三元组,三部分分别是什么含义恶意代码最大的危害恶意代码是病毒吗恶意代码都有什么危害什么是恶意代码还知道哪些恶意代码入侵电脑造成损失的事件手机浏览器提示:您的手机可能遭到恶意代码攻击这是怎

2023年6月19日 10:00

阿里云操作系统(如何更换阿里云服务器操作系统)

阿里云操作系统(如何更换阿里云服务器操作系统)

本文目录如何更换阿里云服务器操作系统阿里云发布“龙蜥”操作系统并宣布开源,这种系统有何亮点阿里云服务器怎么重装系统或重置系统在阿里云服务器上是用什么操作系统阿里云系统跟安卓系统有什么区别如何选择阿里云云服务器ECS操作系统阿里巴巴的YunO

2024年5月7日 21:48

鬼武者有手机版吗?鬼武者战略版王仁丸和鬼之子谁更强

鬼武者有手机版吗?鬼武者战略版王仁丸和鬼之子谁更强

本文目录鬼武者有手机版吗鬼武者战略版王仁丸和鬼之子谁更强鬼武者战略版金手指鬼武者历代主角都是谁为啥我玩鬼武者3保存后退出游戏再进还是没有,明明在破磨镜上保存了的,哪位高手能指点以下啊鬼武者3上的保存次数除了影响评分还会影响什么鬼武者3有作弊

2024年7月23日 17:38

yy粉丝网是什么网站?爱Q粉丝网是干什么的站长是谁知道的说下

yy粉丝网是什么网站?爱Q粉丝网是干什么的站长是谁知道的说下

本文目录yy粉丝网是什么网站爱Q粉丝网是干什么的站长是谁知道的说下百度粉丝网的百度粉丝网粉丝网怎么注册百度粉丝网的百度粉丝网发展大事记粉丝网的网站简介粉丝网什么意思何谓粉丝怎样才算是粉丝yy粉丝网是什么网站YY粉丝网:爱Q粉丝网是干什么的站

2023年7月5日 00:00

中兴手机U232突然出现耳机模式怎么办呀?中兴手机u232怎么样

中兴手机U232突然出现耳机模式怎么办呀?中兴手机u232怎么样

本文目录中兴手机U232突然出现耳机模式怎么办呀中兴手机u232怎么样中兴U232出现问题,请求帮助中兴U232的屏幕是多大的鑫阳光茶具显示U232是什么意思中兴U232手机刷机教程中兴u232手机怎么样呀中兴U232 手机怎么样好用吗中兴

2024年7月6日 14:52

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索