java中可变参数int nums[] = {1,2,3,4};为什么这样写是不对的,帮忙解释下谢谢!
发布网友
发布时间:2022-04-24 19:09
我来回答
共5个回答
热心网友
时间:2023-10-05 08:13
int nums[] = {1,2,3,4};的写法是对。
首先你要明白“定义”本来就是一个笼统的概念,它可以是1.只声明;2声明并分配内存;3声明,分配内存并初始化。
java中定义数据就那么几种方法:
一:只声明一个数组,声明一个数组不分配内存,所以[ ]中不需要有数字
type arrayName[];或者type[] arrayName;
二:声明并分配内存,这时[ ]中必须有数字以显示数组长度
arrayName=new type[arraySize];或者type arrayName=new type[arraySize];
三:声明,分配内存并初始化,这时必须为数组显式初始化(也就是填写数组元素)
例如:int nums[] = {1,2,3,4};
PS:在(二:声明并分配内存)中,其实系统会默认初始化,int数组默认数组元素都是0,String数组默认数组元素都是空格,布尔数组默认数组元素都是false等等。
比如:int arrayName[4];其实等同于int arrayName[]={0,0,0,0};
至于int nums[ ] 和int[ ] nums本质是没什么区别的,尽量写成后者样式比较合理。
这么说应该很好理解吧!o(╯□╰)o
热心网友
时间:2023-10-05 08:13
可变参数是JDK1.5后的新特性
方法中用 ... 三个点接受任意多个参数
比如:public void add(int ...a){
//传入的参数以数组的形式保存的
//int [] a;
}
1。可变参数的方法不要重载。否则,先调用参数匹配的方法
public int add(int a,int b){
return a+b;
}
public int add(int ... a){
return a[0]+a[1];
}
主方法里: 出现 add(1,2)的话 会调用 add(int a,int b) 由于参数匹配。
2。可变参数只能出现在参数列表的最后位置,且只能有一个可变参数
public void fun(String ss,int ... a){}
热心网友
时间:2023-10-05 08:14
你没定义数组的长度,例如 int nums[8]
热心网友
时间:2023-10-05 08:14
没问题啊
public class Test {
public static void main(String[] args) {
int[] nums = { 1, 2, 3, 4 };
System.out.println(sum(nums));
}
public static int sum(int... num) {
int result = 0;
for (int i : num) {
result += i;
}
return result;
}
}追问情况是这样的
int nums[] = {1,2,3,4};
list = Arrays.asList(nums);
System.out.println(list);
我看人家说的什么不能传原生数据类型,能传对象数据类型什么的不懂
我主要想知道什么情况下用原生数据类型,什么情况下用对象数据类型
热心网友
时间:2023-10-05 08:15
int[] nums={1,2,3,4}