---恢复内容开始---

1.数组的申明和应用

   数据类型 数组名称[] = null;             //在堆栈中申明变量名称

   数组名称 =  new  数据类型[10];       //通过new关键字,告诉编译器要在堆中创建一个10个单位的空间。

   

2.数组的静态初始化

   int  score[] = {90,91,92,93,94,95};

   int  score[][] = {{89,90,}{91,92},{93,94,95}

   二维数组静态初始化时,如果每行长度不一样,短的行不赋值的单位将不在数组的范围内。

  for(x=0;x<score.length;x++){  //第一纬的长度为 变量名称.length (表示包括几行,几个元素)

      for(j=0;j<score[x].length,j++){ //第二纬的长度为 变量名称[x].length (表示每行几个元素)

    System.out.print("score[+"x"+]+"["+y+"] = ", score[x][y]+"\t");

}

 System.out.println("");

}

 

输出结果为:

     89  90

     91  92

     93 94 95

 

2.方法的申明和使用

方法是可以被重复调用的代码段。

方法重载,函数名相同,根据不同的参数类型,参数数量做不同的处理,返回值类型也有可能会不同。

如果参数相同,只是返回值不同,不能算重载 ,编译器将报错。

 

与方法覆盖的区别:

方法覆盖,应该是子类将父类的函数进行重写。

方法重载,是一个类中多个同名的函数,根据参数类型,参数数量不同而做不同的处理。

 

return 除了返回函数结果外,另外一个作用是结束函数。

方法的递归调用,函数实现过程中,调用自身。

 

3.数组的引用传递(方法中的参数为数组引用)

在此类情况下,方法对于参数值的修改,将会在数组中保存。

 

如下图所示,为整个内存状态的变化过程。

 

方法除了接受数组引用外,也可以返回一个数组。

 

int temp[] ,int ss[] 这些都是数组引用,存储在栈中。通过int temp[] = fun();使得temp和ss指向同一个堆中的内存空间。

以上这段代码,为数组引用传递的一个例子。

 

java 提供一个针对数组的方便排序方法,针对不用数据类型的数组都可以排序。


java还提供了一个数组间的拷贝函数

 

总结,数组的引用传递,传递的是对内存的使用权。可以将一个数组传递到方法中,传递时,不需要写[]之前写数组名字即可。

方法中对数组所做的修改都会被保留下来。

 

4.java新特性对数组的支持

可变参数,在调用方法的时候可以任意多的传递参数。

申明格式   返回值类型   方法名称(参数类型... 参数名称){}

 

函数对于可变参数的处理,可以按照数组参数来使用,如下图所示,循环时可以用arg.length来计算总共有多少参数。

 

foreach输出

 

 

具体例子语句如下图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

 

 

 

 

---恢复内容结束---