java方法

本文介绍了Java中的基本概念,如方法的定义与调用(如System.out.println),值传递方式,方法重载,命令行参数传递,可变参数以及递归的使用。还强调了递归调用可能导致的栈溢出问题。
摘要由CSDN通过智能技术生成

方法

什么是方法

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);
        }
}}//这是一个简单的阶乘递归解法

能不用递归就不用递归,调用的栈太多了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值