方法
什么是方法
System.out.println().它是什么呢?
类(system)→对象(out)→方法(println)
方法是语句的集合
方法定义
修饰符 返回类型 方法名(参数类型 参数名){//方法可以不含任何参数
。。。
方法名
。。。
return 返回值;
package method; //加法 public class demo01 { public static void main(String[] args) { //main方法 int sum= add(2,6); System.out.println(sum); } public static int add(int a,int b) { return a + b; } }
——java都是值传递
方法重载
有相同的函数名称但是形参不同
参数列表相同
函数名相同
返回值不一定相同
命令行传参
先打开要运行的程序路径,在文件资源管理器路径中打开cmd:
然后在命令行编译相关的java文件,创造一个class文件对其进行编译:
这里涉及一个重要的易错点:
如果编译文件含有package代码,也就是他不是scr包下的java文件,而是scr包下的其他包的文件,譬如我的java文件路径是scr .method.demo02,那在编译demo02.class(或者demo02)时,需要返回到scr路径(依靠 cd../ dos指令)
然后再在命令行传入参数:
下面是代码:
package method; public class demo02 { public static void main(String[] args) { //args.length数组长度 for (int i = 0; i < args.length; i++) { System.out.println("args["+i+"]:"+args[i]); } } }
可变参数
java支持传递同类型的可变参数给一个方法
只需要在方法声明中,在指定参数类型后面加上一省略号(“...”)
package method; public class demo03 { public static void main(String[] args) { demo03 demo_03=new demo03(); demo_03.test(1,13,165,646,64); } // public void method(){} // public void method(int i){} // public void method(int i,int j){} // public void method(int i double j){} public void test(int x,int...i){//这就是可变参数,他的可变体现在申请的变量可以是任意个,但是注意,它必须放在参数列表的最后!!!!!!! System.out.println(i[0]); System.out.println(i[1]); System.out.println(i[2]); System.out.println(i[3]); System.out.println(i[4]); } }
递归
递归包括两部分:
递归头:什么时候不调用自身方法。如果没有头,程序不会结束,最终栈溢出错误
递归体:什么时候调用自己。
package method; public class demo05 { public static void main(String[] args) { System.out.println(f(5)); } public static int f(int n){ if(n==1) {return 1;} else{ return n*f(n-1); } }}//这是一个简单的阶乘递归解法
能不用递归就不用递归,调用的栈太多了