【Java学习】4.方法

初学,肯定有很多理解错误或者表达错误的各种各样的错误的地方,发现错误还请多多指教!!!!!!!
“方法”可以借助函数来理解和记忆。
我首先定义一个函数f(x)=2x-1
然后我把具体的x值代入,就能获得一个函数值
格式
定义一个方法的格式如下:

修饰符 返回值类型 方法名(参数类型 参数名){
     
方法体
return 返回值;
}

每次调用方法遇到return就结束了,后面的不会执行了。
调用时根据返回值类型,可以直接作为一条语句执行
也可以将函数的返回值赋值给一个变量。
【Java学习】4.方法_第1张图片
static指静态方法。可以直接调用。在其他方法里可以【类名.方法名】调用。
在非静态方法里,可以像Scanner一样使用new来实例化,进而调用,如下:
对象类型 对象名=new 对象值;
【Java学习】4.方法_第2张图片
而在同一对象中,静态调用静态非静态调用非静态非静态调用静态,都可以直接调用。
静态调用非静态需要实例化。
值传递
这个我只是理解了,但是不太能表达自己。总之方法里变量的改变如果没有赋值到其他地方,那它只是在一次调用里有效果。
所以为了更好的理解,尽量不要使用相同的变量名。
形式参数和实际参数有什么区别呢,用f(x)=2x-1来解释
x就是形式参数,我想求f(2)的值,2就是实际的参数。
可变参数
首先,格式
【Java学习】4.方法_第3张图片
这样,可变参数的格式是【数据类型…参数名】
可变参数只能放在所有参数的后面,调用时的实际参数可以依次写下去。比如此例中可以输入add(2,3,4,5,6,7)
前面都是按形式参数赋值的,后面多出来的全都是可变参数b的元素。
而在方法体中,使用可变参数是依照数组的格式的。从0开始,依次排序使用。

方法的重载
方法的名字相同,返回值不同,形式参数不同
在调用的时候系统可以自己帮你选择【

public static int add(int a,int b){
     
        return a+b;
    }//返回一个int类型的值
public static double add(double a,double b){
     
        return a+b;
    }//返回一个double类型的值

递归
方法自己调用自己,通过多次调用,把复杂问题简单化。
经典问题求n的阶乘。
n!=n*(n-1)!
所以求出n-1的阶乘就行,依此类推,到1!的时候停止。
所以可以设计一个方法体f(x),
x=1,f(x)=1;
x>1,f(x)=x*f(x-1);
如下。
【Java学习】4.方法_第4张图片
这个地方不好理解,可以去玩一玩汉诺塔和九连环。
汉诺塔要移动九层木块到c柱上,就要移动前八层去b柱,第九层才能去c
移动前八层就要先把前七层到c。。。
九连环也差不多是这个意思。

你可能感兴趣的:(Java,java)