定义与使用
Java方法是语句的集合,他们在一起执行一个功能(很像C里的函数)
-
方法是解决一类问题的步骤的有序集合
-
方法包含于类或者对象中
-
方法在程序中杯创建,在其他地方被引用
Java都是值传递,没有
最好一个方法只执行一个功能,便于拓展
方法的命名要求:首字母小写+驼峰规则
方法头+方法体
修饰符 返回值类型 方法名(参数类型 参数名){
···
方法体
···
return 返回值;
}
return也可以终止方法
public class Demo01 {
//main方法 //返回空值
public static void main(String[] args) {
//实际参数:实际调用传递给他的参数
int sum=add(1,2);
System.out.println(sum);
}
//加法 修饰符 返回值 static让其成为类变量,可以直接在main方法里被调用
//形式参数,用来定义作用的
public static int add(int a,int b){
return a+b;//结束方法
}
}
方法的重载
方法名必须相同
参数列表不能完全一致
方法的返回类型可以相同也可以不同,仅返回类型不同不足以成为方法的重载
Java根据方法参数类型、参数个数等去逐个匹配方法,选择对应的方法,如果匹配失败,则编译器报错
package method;
public class Demo01 {
//main方法
public static void main(String[] args) {
double sum=add(1.0,2.0);
System.out.println(sum);
}
public static double add(double a,double b){
return a+b;
}
//加法 修饰符 返回值 static让其成为类变量,可以直接在main方法里被调用
public static int add(int a,int b){
return a+b;
}
}
命令行传递参数
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]);
}
}
}
在目录前直接输入cmd可以直接打开当前目录下的命令框
需要找到包的路径去加载
命令行传参 “Hello World"
可变参数
给方法传不定项参数(不确定有多少个)
-
在方法声明中,在指定参数类型后加一个省略号(…)
-
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明
例子
package method;
public class Demo03 {
public static void main(String[] args) {
Demo03 demo03=new Demo03();
demo03.method(1,2,3,4,5);
}
public void method(int x,int... i){
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
}
}
递归
A方法调用A方法
边界条件:递归头:什么时候不调用自身方法。没有头,将陷入死循环
递归体:什么时候需要调用自身方法
Java都是栈机制,递归的深度越大,占用内存越大,考验电脑性能,小计算可以用递归,大的用其他方法代替
阶乘运算
public class Demo04 {
public static void main(String[] args) {
Demo04 test=new Demo04();
System.out.println(f(3));
}
//阶乘运算
//1!=1
//2!=2*1
//3!=3*2*1
//4!=4*3*2*1
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
}