第07章:方法

方法的声明和使用

方法:就是一段可重复调用的代码段

注意:
有过其他语言学习经历的读者,在其他语言中会将方法称为函数,不管函数也好,方法也好,只是名字的不同,但是其作用都是一样的。

方法定义格式:

public static 返回值类型 方法名称 (类型 参数1,类型 参数2 ,……)
{

    程序语句;
    return 表达式;
}

本章所讲解的方法都是指可以使用主方法调用的方法,所以格式现在较为固定,以后还会有其他的格式。

如果在返回值类型上写上的是一个void,则表示此方法没有返回值,则就不能使用return返回内容。

在printInfo()中定义了许多代码,这些代码在调用的时候只需要调用方法名称即可,比较方便一些。

方法的命名要求:第一个单词首字母小写,之后每个单词的首字母大写。

如果需要一个方法有返回值,则直接在返回值处上写上返回值的类型即可。


public class Methdemo2 {
    public static void main(String[] args)
    {
        int one = addOne(10,20);
        float two = addTwo(10.3f,13.3f);
        System.out.println("addOne的计算结果是:"+one);
        System.out.println("addTwo的计算结果是:"+two);
    }
    public static int addOne(int x,int y)
    {
        int temp = 0;
        temp=x+y;
        return temp;
    }
    public static float addTwo(float x,float y)
    {
        float temp = 0;
        temp = x+y;
        return temp;
    }

}

方法的重载(很重要)

方法的重载就是方法名称相同,但参数的类型和参数的个数不同,通过传递参数的个数及类型不同完成不同功能的方法调用。在调用的时候,会根据参数的类型和个数自动进行区分。


public class Methdemo2 {
    public static void main(String[] args)
    {
        int one = add(10,20);
        float two = add(10.3f,13.3f);
        int three = add(1,23,45);
        System.out.println("addOne的计算结果是:"+one);
        System.out.println("addTwo的计算结果是:"+two);
        System.out.println("addTwo的计算结果是:"+three);
    }
    public static int add(int x,int y)
    {
        int temp = 0;
        temp=x+y;
        return temp;
    }
    public static float add(float x,float y)
    {
        float temp = 0;
        temp = x+y;
        return temp;
    }
    public static int add(int x, int y,int z)
    {
        int temp = 0;
        temp = x+ y+z;
        return temp;
    }

}

方法重载一定是根据参数的类型或个数来判断的

使用return结束一个方法

return除了可以返回内容之外,也可以结束方法。


public class Methoddemo2 {
    public static void main(String[] args)
    {
        System.out.println("1、调用fun()方法前:");
        fun(10);
        System.out.println("2、调用fun()方法之后:");
    }
    public static void fun(int x)
    {
        System.out.println("3、进入fun()方法");
        if (x==10)
        {
            return;  //结束方法,返回被调用
        }
        System.out.println("4、正常执行完fun()方法。");
    }
}

方法的递归调用

递归调用是一种特殊的调用形式,是方法自己调用自己

例如:现在假设完成一个数字的累加操作,除了可以使用循环的方式完成,也可以通过递归的方式完成。

public class Methoddemo5 {
    public static void main(String[] args[])
    {
        System.out.println("计算结果:"+sum(100));
    }
    public static int sum(int num)
    {
        if(num ==1)
        {
            return 1;
        }
        else
        {
            return num +sum(num-1);
        }
    }
}

数组的引用传递

一个方法可以接受一个数组,也可以返回一个数组,如果方法接收一个数组的话,则此方法对数组所作的修改将全部被保留下来。

public class ArrayRedemo1 {
    public static void main(String[] args)
    {
        int temp[] = {1,2,5};
        fun(temp);
        for(int i=0;i<temp.length;i++)
        {
            System.out.println(temp[i]+"、");
        }
    }
    public static void fun(int x[])
    {
        x[0] = 6;
    }

}

方法除了可以接收数组之外,也可以通过方法返回一个数组,只需要在返回值类型上,明确声明返回的类型是数组即可。

可变参数

在之前讲解方法的时候,曾经说过,一个方法在调用的时候必须根据其规定的参数传递参数,规定了五个,就必须传递五个,但是在jdk1.5之后,为了让方法更加具有灵活性,使用了可变参数的概念,在调用方法的时候可以,任意多的传递参数。

格式如下:

返回值类型 方法名称(类型……参数名)

所有的可变参数接收之后,都是以数组的形式保存下来。所以直接按数组的方式接收即可。


public class Newdeno {
    public static void main(String[] args)
    {
        System.out.print("不传递参数 (fun())");
        fun();
        System.out.print("\n传递一个参数(fun(1))");
        fun(1);
        System.out.print("\n传递五个参数(fun(1,2,3,4,5,))");
        fun(1,2,3,4,5);
    }
    public static void fun(int...arg)
    {
        for(int i = 0;i<arg.length;i++)
        {
            System.out.println(arg[i]+"/");
        }
    }
}

foreach输出

为了方便数组输出,提供了一种foreach语法,格式如下:
for (数据类型 变量名称:数组名称)
{
……
}


public class newdemo2 {
    public static void main(String args[])
    {
        System.out.print("不传递参数");
        fun();
        System.out.print("\n传递一个参数(fun(1))");
        fun(1);
        System.out.print("\n传递五个参数(fun(1,2,3,4,5))");
        fun(1,2,3,4,5);
    }
    public static void fun(int...arg)
    {
        for(int x:arg)
        {
            System.out.print(x+"、");
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值