设计方法的原则:一个方法只完成一个功能,这样有利于后期的扩展
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
修饰符
返回值类型
方法名
参数类型
注:Java中实参到形参的传递都是“值传递”,基本数据类型的实参将其具体的值复制一份给形参,而引用类型的实参将其地址复制给形参
方法体
重载就是在一个类中,有相同名称,但形参不同的函数
方法名称相同时,编译器根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败则报错。
在cmd中,以如下形式可以给main函数的args数组传参
java xxx 参数
Demo2 demo2 = new Demo2(); demo2.test(1,2,3,4,5,6,34,234); } public void test(int x,int ... i){ //可变参数必须放在最后 for (int j : i) { System.out.println(j); //输出2,3,4,5,6,34,234 }
递归就是自己调用自己
利用递归来解决一些复杂问题,在大的问题层层转化为与原问题相似的小问题来求解。使用递归只需要少量的程序就可以描述出解题过程所需要的多次重复计算。
递归结构包含两个部分:
比如写一个阶乘函数f(n),n==0则return 1 否则 return n*f(n-1)
注
Java使用栈机制,所以对一些需要多次递归的问题,太占内存。比如之前阶乘的例子,如果要让程序算200的阶乘,直接输出0了,内存崩溃
能不用递归就不用递归了,除非问题递归次数少