方法

1.方法的作用:减少重复性代码,实现代码复用;便于后期维护性。

2.方法:实现特定功能的一段独立代码块。

3.方法声明:
3.1:方法声明的语法:
访问修饰符 【扩展修饰符static/final/abstract】 返回值类型 方法名(参数类型1 参数名1,参数类型2 参数名2…){
代码块;
【return 返回值;】
}
3.2:方法的访问修饰符有public,protected,default,private,一般用public
3.3:返回值类型:是指方法执行完后返回的一个结构的类型,返回值类型可以是Java中任意类 型(int,double,String,boolean,数组,类,接口),如果方法执行完不想 返回任意东西,用void.
3.4:方法名采用是驼峰式命名法。
3.5:方法参数:执行这个方法功能所需要的数据。在方法中,参数当作已知的变量来使用。
一个方法的参数可以是0个到多个,参数之间用逗号分隔。
3.6:返回值:方法执行完后返回的结果,一个方法只能返回一个结果。如果这个方法是无返回 值的方法,可以省略【return 返回值;】,如果方法是有返回值的,那么 return后面的返回值的数据类型必须与返回值类型类型相同。
3.7:方法不调用不执行;方法只有调用了才会去执行。
3.8:方法与方法之间是平级关系,方法与方法之间不可以嵌套。

eg:/**
* 声明一个无返回值无参数的方法
* 刷新功能
*/
public static void frush(){
	System.out.println("刷新");
}


/**
* 声明一个无返回值有参数的方法
* 输出姓名功能
*/
public static void printName(String name){//name="孙星"
	System.out.println("姓名为:"+name);
}

/**
* 声明一个有返回值无参数的方法
* 返回一句话的功能
*/
public static String getWord(){
	return "我是天才";
}

/**
*声明一个有返回值有参数和方法
* 计算两个数之和的功能
*/
public static double add(double num1,double num2){
	double sum=num1+num2;
	return sum;
}

4.方法的调用:
4.1:调用方法的语法: 方法名(【参数1,参数2…】);
eg://调用无返回值无参数的方法
frush();

	//调用无返回值有参数的方法
	printName("孙星");

	//调用有返回值无参数的方法,声明一个变量接收方法执行完的返回值
	String result=getWord();
	System.out.println("方法的执行结果为:"+result);

	//有返回值有参数和方法,声明一个变量接收方法的执行结果
	double result2=add(3.14,6.18);
	System.out.println("两数之和为:"+result2);
	double result3=add(1,1);
	System.out.println("两数之和为:"+result3);

5.方法的参数:
形参:方法声明时的参数叫形参,形参前一定要有数据类型。eg:(参数类型1 参数名1,参数 类型2 参数名2…)
实参:方法调用时的参数叫实参,实参要传递具体的数据,无须写数据类型。
eg:printName(“孙星”);
注意:同一个方法的,实参和形参的数量要一致,类型要匹配。

6.方法重载:
6.1:方法重载作用:解决同一个类中相同功能方法命名问题,调用问题。
6.2:方法重载条件:在同一个类,方法名相同,参数列表不同(参数的个数,参数类型不 同)。
6.3:重载方法的调用,是根据方法参数列表来确定调用哪个方法。

	eg:public class MethedTest2{
/**
*程序的入口方法
*/
public static void main(String[] args){
	//调用计算数之和的方法
	double result1=add(1,2,4.4,7);
	System.out.println("结果为:"+result1);
}

/**
*计算两数之和的方法
*/
public static double add(double num1,double num2){
	System.out.println("计算两数之和的方法");
	double sum=num1+num2;
	return sum;
}

/**
*计算三数之和的方法
*/
public static double add(double num1,double num2,double num3){
	System.out.println("计算三数之和的方法");
	double sum=num1+num2+num3;
	return sum;
}

/**
*计算四数之和的方法
*/
public static double add(double num1,double num2,double num3,double num4){
	System.out.println("计算四数之和的方法");
	double sum=num1+num2+num3+num4;
	return sum;
}

}

7.递归:方法自身调用自身
7.1:递归的使用条件:
7.1.1:将原问题拆分为若干子问题,子问题的解决方式与原问题一样。
7.1.2:原问题的解决依赖于所有子问题的解决。
7.1.3:递归一定要有出口(终止条件)。
7.2:简单的问题用递归可以解决,也可以用循环结构解决。
复杂的问题用递归解决的,一般不能用循环结构解决。
写递归时一定要避免死递归。死递归会报内存溢出。
7.3:递归的优点:用递归思想解决复杂问题
递归的缺点:耗内存。
eg:public class MethedTest4{
/**
*程序的入口方法
*/

public static void main(String[] args){
	//获得具有从键盘上接收数据的能力
	Scanner input=new Scanner(System.in);
	System.out.println("请输入要计算的阶乘的数:");
	int a=input.nextInt();
	//调用重载方法
	int r=diGui(a);
	System.out.println(a+"的阶乘为:"+r);
}

/**
*计算一个数的阶乘
*/
public static int diGui(int num){//5,4,3,2,1
	//声明一个变量存当前数的阶乘的结果
	int result=0;
	//如果当前数是1,阶乘结果就是1
	if(num==1){
		result=1;
	}else{//如果当前数不为1,阶乘:当前数*diGui(当前数-1)
		result=num*diGui(num-1);
	}
	return result;
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值