1.方法:具有特定功能的一段独立的代码块就叫方法.
方法名:代码块的名称.
3.方法的特征
3.1:方法声明的语法:
访问修饰符 扩展修饰符(static/final/abstract) 返回值类型 方法名
(参数类型1 参数名1,参数类型2 参数名2......){
代码块;
[return 结果]
}
3.2:访问修饰符(表示访问权限):
public:表示公共的(任何类和方法中都可以访问),
protected:表示受保护的(在同一个包中或父子类中可以调用),
default:表示默认,缺省的(同一个类中,同一个包中可用),
private:私有的(只有当前类中可用).
3.3:返回值类型:
表示方法执行完后要返回的结果的数据类型,返回值类型可以是java支持任意类型,如果方法不想返回任何结果,用void表示无返回值.如果方法的返回值类型不是void,方法中一定要写return 结果,而且结果类型要返回值类型一致;如果方法返回值是void,方法中可用reutrn(结束方法的作用),也可以不用return.
3.4:方法名:表示这段独立代码块.方法名自定义,采用驼峰式命名法.
3.5:参数列表:
方法名后面小括号中参数指的是参数列表,表示执行这个功能所需要的原材料,参数列表可以由0个到多个组成,参数与参数之间用逗号隔开.参数在方法当作已知变量来用.参数前一定要有数据类型.
3.6:return 结果:
表示方法执行完后要返回给调用者结果,如果一个方法执行完了不需要结果,就可以省略return 结果,如果返回值类型不是void,就一定要用return 结果,而且结果数据类型必须与返回值类型相同.一个方法只能返回一个结果,无论它是java中哪种类型都可以.
3.7:方法与方法之间是一种平级的关系,不能相互嵌套.
3.8:声明了方法只表示具有这种功能,方法不调用永远不会执行.
3.9:在同一个类中不能出现相同的方法(方法的访问修饰符,返回值类型,方法名,参数列表都相同)
3.10:方法之间可以互相调用.
3.11:方法类型:
3.11.1:无参无返回值的方法
3.11.2:有参无返回值的方法
3.11.3:无参有返回值的方法
3.11.4:有参有返回值的方法
eg:/**
*声明了一个无参无返回值的方法,刷新
*/
public static void flush1(){
System.out.println("刷新啊");
}
/**
*声明一个有参无返回值的方法,打印一个直角三解形
*/
public static void printTriangle(double rows,String symbol) {//rows=row1,symbol=symbol1
//外层循环控制打印行数
for(int i=1;i<=rows;i++){
//内层循环控制每行打印*的个数
for(int j=1;j<=i;j++){
System.out.print(symbol);
}
//打印完一行再换行
System.out.println();
}
}
/**
* 声明一个无参有返回值的方法,自我介绍
*/
public static String showMyself(){
return "大家好,我叫孙星";
}
/**
*声明一个有参有返回值的方法,计算两数之和的方法
*/
public static double add(double num1,double num2){
double result=num1+num2;
return result;
}
4.方法的调用:方法名(参数1,参数2…)
5.形参:
声明方法时的小括号中参数就叫形参,形参的每个参数的前面一定要带数据类型.
实参:
方法调用时的小括号中参数就叫实参,实参的每个参数前面一定不要带数据类型.
传参:在方法调用时将实参的参数传线形参这个过程就叫传参.
注意:对同一个方法的声明和调用时,实参和形参的要一一对应(参数数量要一致,顺序相同,类型兼容)
8.方法重载的调用:根据方法的参数决定调用哪个方法.
9.递归:方法自身调用自身递归.
10.递归使用条件:
10.1:将原问题拆分为若干个子问题,子问题的解决方法与原问题一样.
10.2:原问题的解决依赖于的有子问题解决.
10.3:递归一定要的出口(线束条件).
能用for循环解决的问题都可以用递归解决,但是能用递归解决的问题不一定能用for解 决.循环缺点就是耗内存.一定要避免死递归.