首页 > 代码库 > JAVASE课程 第一章 第四讲方法,数组,java新特性

JAVASE课程 第一章 第四讲方法,数组,java新特性

作用:  
1、可以了解方法的申明和使用
2、可以了解数组的引用传递 
3、可以了解java新特性对数组的支持


一 方法的申明和使用
1 方法的定义
方法就是一段可重复调用的代码块.


2 方法的定义格式
a public static 返回值类型 方法名称(类型参数1,类型参数2...){
     方法主体:
程序语句
[return 表达式;]
}
b 在本节定义的方法,因为其可以直接使用主方法调用,所以将方法声明处加上public static两个关键字
c 注意
1/ 如果返回值类型上写的是void,则说明此方法没有返回值,则就不能使用return返回内容
2/ 方法的命名规范: 第一个单词首字母小写,之后每个单词的首字母大写.


3  方法重载
定义: 方法的重载就是方法名称相同,但参数的类型和参数的个数不同,通过传递参数的个数和类型不同以完成不同功能的方法调用.
提示: System.out.println() 方法也属于重载方法
注意: 方法重载一定是根据参数的类型或个数来判断的.
************************************
public int addFun(int a,int b){
return a+b;
}


public int addFun(int a,int b,int c){
return a+b+c;
}
************************************


4 使用return结束一个方法
return 除了可以返回一个方法的结果,返回内容以外,也可以返回结束方法.


5 方法的递归调用
定义:  递归调用是一种特殊的调用形式,是方法的自己调用自己.
注意:  在递归操作中,一定要明确的写出方法的借宿判断,否则会出现内存溢出bug.
************************************
//1+..+100 递归调用
public static int fun(int temp){
if(temp==1){
return 1;
}else{
return temp+fun(temp-1);
}
}
************************************


二 数组的引用传递
1 接收和返回数组
定义: 一个方法可以接收一个数组,可以返回一个数组.如果方法接收一个数组的话.则此方法对数组所做的修改将全部保留下来[因为数组使用了内存,所以保留修改].
************************************
//修改数组,数组所做修改就会保存
public static void updateArr(int[] array){
    array[0]=12;
}


public static void main(String[] args) {


 int[] array = {1,2,3};
 updateArr(array);
 System.out.println(array[0]);

}
************************************


注意: 方法除了可以接收数组之外还可以通过方法返回一个数组,只需要在返回值类型上,明确的声明处返回的数组即可.


2 范例讲解,数组排序 (讲述了java api的强大)
a 数组排序引用方法  =>  自己开发 (可以使用冒泡排序)
//冒泡排序 从小到大
************************************
public static void mpSorts(int[] arrsys){  //{10,9,8,7}
int temp=0;
for (int i = 0; i < arrsys.length; i++) {
//i=0 ,10 需要与9 8 7 比较 
//temp=10 arrsys[0]=9 arrsys[1]=10 说明把10排到后面了  理解第一  
for (int j = i; j < arrsys.length; j++) {  
if(arrsys[i]>arrsys[j]){
temp = arrsys[i];
arrsys[i] = arrsys[j];  //修改内存中 将小的移到前面去
arrsys[j] = temp;  //修改内存中  将大的移到后面去
}
}
}

}
************************************
b java为了数组排序操作方法,提供了一个方法  java.util.Arrays.sort(数组名)


3 范例讲解,数组拷贝(讲述了java api的强大)
a 数组拷贝,方法传递的参数,源数组,目标数组,拷贝的长度  =>  自己开发 
b java提供支持 System.arrayCopy(源数组,源数组的开始点,目标数组,目标数组的开始点,拷贝长度)


4 总结
数组的引用传递就是堆内存的使用权,可以将一个数组传递到方法当中,传递对的时候不需要写上[],直接写上名字即可.




三 java新特性对数组的支持
1  可变参数 (一个方法可传一个参数,或n个参数)
a 定义格式
b 例子
c 注意: 所有的可变参数接手之后,都是以数组的形式保存下来的,所以直接安数组的方式接受即可.
******************************
//可变参数
public static void nCanshu(Object ... array){

//foreach循环
for(Object obj:array){
System.out.print(obj+" ** ");
}

//for循环
for (int i = 0; i < array.length; i++) {
if(i==0){
System.out.println(array[i]);
}
}

}
******************************




2 foreach输出
数组输出: 一般都会使用for循环输出,在jdk1.5之后提供的方法.


3 随机取数,把字符变量B数组中的字符随机赋给二维字符数组A(4为B数组的长度)
A[i][j] = B[(int)Math.floor(Math.random()*4)]


方法: this关键字调用构造方法
一个构造方法里调用其他重载方法,不适用构造方法名,而是用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法.
1) 一个方法用this,重新再调用此方法 (用于形式否则不符合要求,再重新输入)
2) 二个方法中this,一个方法调用另一个


******************************
// this调用
public int fun1(int a , int b){
  return a+b;
}  
public int fun2(int a,int b){
   return this.fun1(a,b);  //不用this也可以
}
******************************

JAVASE课程 第一章 第四讲方法,数组,java新特性