一、方法
1. 调用
直接调用:方法名(实参列表);
类名调用:类名.方法名(实参列表);
对象调用:对象.方法名(实参列表);(面向对象会使用)
*递归调用:
定义:行过程中出现该方法本身的调用,即“自己调用自己”
条件:递归出口(结束条件),逐层递推向出口逼近
eg: Tower of Hanoi汉诺塔(又称河内塔)
package recursive;
import java.util.Scanner;
public class Hanoi {
public static int count=0; // 记录移动次数
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.print("请输入圆盘个数:");
int num=scan.nextInt();
hanoi(num,'A','B','C');
scan.close();
}
/**
*
* @param num :圆盘个数
* @param start : 起始棒
* @param help : 辅助棒
* @param dest : 目标棒
*/
public static void hanoi(int num,char start,char help,char dest){
if(num==1){
count++;
System.out.println("第"+count+"次移动,从"+start+"棒移动到"+dest+"棒");
}else{
hanoi(num-1,start,dest,help);
count++;
System.out.println("第"+count+"次移动,从"+start+"棒移动到"+dest+"棒");
hanoi(num-1,help,start,dest);
}
}
}
2. 参数
(形参):在方法定义时用于接收外界输入的数据。
实际参数(实参):调用方法时实际传给方法的数据。
3. 返回值
(1)没有返回值:返回值类型为void
(2)有返回值:
使用关键字return返回该值+返回值类型为该返回值的类型
使用关键字return返回该值+没有返回值→方法结束
二、数组
(1) 数组遍历:
1. for循环。获取数组元素的下标,然后遍历对应元素。
eg: 一维数组:
for(inti=0;i<array.length;i++){
// 逐个遍历元素array[i]
}
二维数组:
for(int j = 0; j < a[i].length; j++){
for(int j = 0; j < a[i].length; j++){
System.out.print(a[i][j]);
}
}
2. foreach输出。中括号内为“for(数据类型 变量名称:数组名称)”
eg:
for(int x:array){
// x为当前正在遍历的数组元素
}
(2)数组拷贝:
System类中的静态方法:
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
参数解释:
src: 源数组
srcPos: 源数组的起始位置
dest: 目标数组
destPos: 目标数组的起始位置
length: 拷贝的数组元素个数
Copyright © 2017 Jin Hanquan. All rights reserved.