java数组作为参数传入函数(JAVA中字符串和数组作为函数参数 分别是如何传递的)
本文目录
- JAVA中字符串和数组作为函数参数 分别是如何传递的
- java中 数组可以作为形式参数传递到调用的方法中吗要怎么操作
- JAVA调用函数传入数组问题
- java如何把数组值传递给另一个函数
- 在Java中数组作为方法的参数的一个问题
- Java的数组作为参数传入方法和C语言的不同
- java 函数参数是数组的时候传递的是值还是引用如果想让他传递数组的
- java类中用类的数组作为函数参数传给类,为什么不能直接对类的数组进行操作
JAVA中字符串和数组作为函数参数 分别是如何传递的
字符串作为值来传递,数组作为对象传递 值传递是不改变原来属性的值的。所以结果是:goodbbbString 确定是值传递,。楼下的高级经理怎么来的?????
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调用函数传入数组问题
【这段程序总共就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 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中数组作为方法的参数的一个问题
public static int add(int)中的参数定义是相同的,都表示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;i《args.length;i++){ sum+=args; } return sum; }
可以这样认为,可变参数只是数组的一种增强型,适用于工具类的封装,比如java的dao层Dbutl工具类,使用PreparedStatement进行预编译sql语句时,由于占位符的数量未知,我们就可以使用可变参数来设置占位符的数量
Java的数组作为参数传入方法和C语言的不同
首先,数组名不是指针,只不过作为参数或返回值时会退化为指针,其次,java 使用值传参(pass_by_value)的方式来传递函数参数,只是值传递方式在处理原始数据类型参数与引用类型参数时候有不同,如果一个参数是原始数据类型,那么参数变量的值传递进去,如果要修改,需要传递引用类型
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);}}
另外有一些简单的建议:
你的代码段里对数组的写法使用的是Student stu stu;
如果你真的要传递Student stu;,那么有两种建议:
① 你给你的数组对象先实例化好,可以用循环,如果没学到循环,可以一个一个创建;
② 如果不想在创建时候就实例化,那么也可以在使用的时候进行判断,判断如果是空引用,不包含对象再进行实例化,关键代码如下:
if (null == stu) {
stu = new Student();
}
本文相关文章:
cesium的datasource(Cesium快速上手9-Camera和Scene中的其他函数使用)
2024年9月9日 18:01
day函数是什么意思(函数DAY($A$3)*4-4 代表什么意思)
2024年9月8日 10:45
递归算法解决八皇后问题(用递归函数设计八皇后问题的回溯算法C++代码)
2024年9月8日 09:01
c语言lseek函数的用法(问一个关于lseek函数的效率问题)
2024年9月7日 14:45
python递归函数考试题(python题目:要求用递归、递推和Lambda三种方式编写power(n,x)函数)
2024年9月6日 03:40
c语言中函数abs 和 fabs有什么区别?C语言中fabs表示什么意思
2024年9月4日 08:10
matlablength函数用法(如何使用MATLAB作出如下函数ns关于x变化的函数,x的取值范围为0到10)
2024年9月1日 04:40
php截取字符串以特定的字符分割(PHP怎么用substr函数截取字符串中的某部分)
2024年9月1日 03:45
small函数相反的函数(excel中small函数有什么作用)
2024年9月1日 01:40
easyx安装教程(【C语言】如何在VC++6.0中使用TC2.0特有的函数呢)
2024年8月31日 06:40
更多文章:
usb万能驱动下载win7(华硕x45vd的usb3.0驱动下载在哪里啊)
2024年7月27日 17:15
惠普1000打印机驱动(惠普laserjet 1000 series win7驱动)
2024年6月14日 21:55
cad教学视频全集免费(哪里有免费可下载的CAD视频教程 从入门开始的)
2024年9月7日 01:10
cf修复工具(我打游戏(CF)老是出现网络异常,与主机连接失败,怎么解决呀)
2023年9月21日 19:40
可以赚钱并提现到微信的游戏(挣钱游戏软件一天赚100微信提现没有广告)
2024年6月23日 13:09
nds4ios(nds4ios游戏放哪里nds4ios模拟器游戏存放路径)
2024年5月15日 07:48
龙城战歌手游官网(手游龙城战歌为什么别人看不到我说话是不是被禁言了)
2024年6月26日 02:17
卫星定位天气预报免费下载(即刻天气预报几点几分下雨免费下载)
2024年5月16日 23:20
第一ppt课件免费下载(向您推荐几个比较好的ppt模板下载网站)
2024年9月9日 13:15
今晚世界杯预选赛直播(中国VS新加坡直播 中国对新加坡直播 世界杯预选赛中国国足VS新加坡男足电视转播CCTV5)
2024年7月24日 21:05
安卓系统的手机怎么查看有没程序在后台运行?为什么我安装进程终结者提示更新错误
2023年7月12日 01:00