方法
/*
* java方法是语句的集合,他们在一起执行一个功能;
* 方法是解决一类问题的步骤的有序组合
* 方法包含于类或对象中
* 方法在程序中被创建,在其他地方被引用
* 方法设计,最好保持方法的原子性,即一个方法只完成一个功能,有利于我们后期进行扩展保证main方法的简洁
* 修饰符 返回值类型 方法名(参数类型 参数名){
* 方法体
* return 返回值;
* }
* 修饰符:可选,告诉编译器如何调用该方法,定义了该方法的访问类型;
* 返回值类型:方法可能会有返回值returnValueType是方法返回值的数据类型;
* 有些方法执行所需的操作,但没有返回值,此时,returnValueType是关键字viod
* 方法名:是方法的实际名称,方法名和参数表共同构成方法签名;
* 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数是可选的,方法不包含任何参数;
* 方法体:方法体包含具体的语句,定义该方法的功能。
* 当方法返回一个值的时候,方法调用通常被当作一个值。例如int max = max(10,20);
* 如果方法返回值是void,方法调用一定是一条语句,如System.out.println(max);
* 值传递(java是值传递)和引用传递
* 值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
* 引用传递是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
*
* */
public static void main(String[] args) {
// int sum = add(1,2);
int max = max(10,20);
System.out.println(max);
}
//加法
public static int add(int a,int b){
return a+b;
}
public static int max(int num1,int num2){
int result = -1;
if(num1 == num2){
System.out.println("num1==num2");
return 0;
}
if(num1 > num2){
result = num1;
}else {
result = num2;
}
return result;//return:终止方法
}
/*
* 方法的重载:就是在一个类中,有相同的函数名称,但形参不同的函数;
* 方法重载的规则:
* ①方法名必须相同;
* ②参数列表必须不同(个数不同,或者类型不同,参数排列顺序不同等)
* ③方法的返回类型可以相同也可以不同;
* ④仅仅返回类型不同不足以成为方法的重载;
*
* */
/*
* 命令行传参:有时候你希望运行一个程序时候再传递给它消息,这要靠命令行参数给main()函数实现(没听懂)
* 可变参数:jdk1.5开始,Java支持传递同类型的可变参数给一个方法;
* 在方法声明中,在指定参数类型后加一个省略号(...)
* 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明
* 可变形参在接收数据时,会转化为数组;
* */
/*
* 递归:就是自己调用自己(尽量少有递归)
* 递归结构包括两个部分:
* 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环;
* 递归体:什么时候需要调用自身方法;
* Java使用栈机制
* */
public static int f(int n){
if (n==1){
return 1;
}else {
return n*f(n-1);
}
}