Java复习-5

Java复习-5

方法

方法是语句的集合,他们在一起执行一个功能

最好一个方法只做一个功能(原子性

结构

修饰符  返回值类型  方法名  (参数类型  参数名){

方法体
return 返回值

}

方法的调用注意

Java中为什么方法加个static。main方法才能调用static方法?

不是一定要加的,只是你加了之后可以在方法里面直接调用,不需要创建对象;因为main函数是静态方法,所以有一些方法设置为静态是为了方便调用。
注意:1、在静态方法中,不能调用非静态方法及引用非静态变量。但是反过来却没问题。
2、JSR规范强制规定了main()方法的格式必须是: public static void main(String[] args){…}

Java是值传递

方法的重载

重载(overloading) 是在一个类里面,方法名字相同而参数不同返回类型可以相同也可以不同

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表

最常用的地方就是构造器的重载。


int add(int num1,int num2){
	return num1 + num2;
}


int add(int num1,int num2 ,int num3){
	return num1 + num2 + num3;
}




可变参数



//一个方法只能指定一个可变参数,它必须是方法的最后一个参数,任何普通参数都必须在他前面

static int add(int... args) {
		int result = 0;
		for(int i = 0;i < args.length;i ++) {
			result += args[i];
		}
		return result;
}

递归

自己调用自己

基数要小,否则会卡死

汉诺塔问题:一次只能移动一个盘子;不能把大盘子放在小盘子上;除去盘子在两个柱子之间移动的瞬间,盘子必须都在柱子上。(在这三点要求下把盘子从起始柱子A全部移动到目标柱子C上)

在这里插入图片描述

代码如下:
基础情形:n==1的时候终止递归,进行回溯。

public class HanNuoTower {
	public void tower(int n,char s,char m,char e)//n个塔从s经过m最终全部移动到e
	{
		if(n==1)
			move(s,e);
		else
		{
			tower(n-1,s,e,m);
			move(s,e);
			tower(n-1,m,s,e);
		}
	}
	public void move(char s,char e){
		System.out.println("move "+s+" to "+e);
	}
	public static void main(String []args){
		HanNuoTower hnt =new HanNuoTower();
		hnt.tower(4,'A','B','C');
	}

}


tic void main(String []args){
		HanNuoTower hnt =new HanNuoTower();
		hnt.tower(4,'A','B','C');
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值