Java(十四)方法

82 阅读4分钟

Java中的方法,在PHP中被称为函数(是不是官方叫法我不知道,反正我一直是这么叫的)

但是在java中定义方法和PHP以及javascript中是很不同的。

 

Java是强语法类型语言,因此,方法必须有明确类型的返回值。以及明确的参数列表。

 

其实方法这个东西早在我们测试循环的时候就已经使用过了,当时为了不把代码写到一起,都是将每部分的代码分开写到单独的方法中的。详情请移步《Java(十二)循环》只是这里的方法都是没有返回值的。

 

一:方法的定义

今天的测试我就不再照搬循环中的例子了。没有太大的意义,我们判断数字的大小。这个好。

定义一个方法,有两个参数,分别为i,j,返回值为二者之间较大的数字,若二者相等,返回-1。

    /**
     * 比较两个函数大小
     * @param i
     * @param j
     * @return
     */
    public static int reduct(int i,int j)
    {
        if(i == j)
        {
            return -1;
        }
        if(i > j)
        {
            return i;
        }
        else
        {
            return j;
        }
}
 
 
    /**
     * 比较两个函数大小
     * @param i
     * @param j
     * @return
     */
    public int reduct(int i,int j)
    {
        if(i == j)
        {
            return -1;
        }
        if(i > j)
        {
            return i;
        }
        else
        {
            return j;
        }
    }

 

上边我定义了两个方法,区别在一个方法有static,一个方法没有static,这就需要先说一下关键字static,他关系到了一会我们如何去调用这个方法,有定义方法中有static,直接调用即可,定义方法中没有static,则需要实例化这个类(new)之后才可以调用。暂时了解即可,后边会陆续看到。

 

我们调用的时候使用有static的方法进行测试。

 

方法定义好了,我们接下来去调用它,我们大概有三种调用方法。

1:单独调用:方法名(参数)

注意,如果方法的返回值为void的时候,只能使用单独调用

 

2:输出调用:System.out.print(方法名(参数))

注意,如果方法的返回值为void的时候,不能使用输出调用

 

3:赋值调用:数据类型 变量名 = 方法名(参数)

注意,赋值调用只适用于有返回值的方法

public class T04 {
    public static void main(String[] args) {
        // 单独调用
        reduct(5,2);
        // 输出调用
        System.out.println(reduct(5,2));
        // 赋值调用
        int result = reduct(5,2);
        System.out.println(result);
    }
 
    /**
     * 比较两个函数大小
     * @param i
     * @param j
     * @return
     */
    public static int reduct(int i,int j)
    {
        if(i == j)
        {
            return -1;
        }
        if(i > j)
        {
            return i;
        }
        else
        {
            return j;
        }
    }
}

调用输出:

5

5

 

上边我们测试了有返回值的方法,下边我们测试一下,没有返回值的方法。将上方的代码改造一下:

public class T04 {
    public static void main(String[] args) {
        // 单独调用
        reduct(5,2);
    }
 
    /**
     * 比较两个函数大小
     * @param i
     * @param j
     * @return
     */
    public static void reduct(int i,int j)
    {
        if(i == j)
        {
            System.out.println(-1);
        }
        if(i > j)
        {
            System.out.println(i);
        }
        else
        {
            System.out.println(j);
        }
    }
}

输出:

5

 

方法的返回值有很多种类型,比如:int,char,long,数组,void等。这里就不一一做展示了

 

二:方法的注意事项

在定义方法的时候有几个点需要注意下:

1:方法不能嵌套定义(方法与方法是平级关系)

2:void表示无返回值,可以省略return ,也可以单独的书写return ;,后面不加数据

3:返回值不是void的时候,必须有return值,否则会编译报错

 

三:方法的重载(overload)

方法的重载:指在同一个类中,出现两个方法的名字相同,参数列表不同的两个方法,就称之为方法的重载。

这个玩意就很有意思,先说我熟悉的PHP,PHP中是没有类似java的重载功能的,它在定义函数的时候,可以给函数的参数赋默认值

public static function doCurl($url$method 'GET'$data null)
    {
        curl_close($ch);
        return $output;
    }

第二个参数和第三个参数都是有默认值的,因此,我们只需要传递第一个参数方法即可正常调用。

Java是通过重载来实现PHP类似的功能的。

举个例子:

public class T04 {
    public static void main(String[] args) {
        int two = sumNunber(5,2);
        System.out.println(two);
        int three = sumNunber(5,2,6);
        System.out.println(three);
 
    }
 
    /**
     * 加和(三个参数)
     * @param i
     * @param j
     * @return
     */
    public static int sumNunber(int i,int j,int x)
    {
        return i + j + x;
    }
    /**
     * 加和(两个参数)
     * @param i
     * @param j
     * @return
     */
    public static int sumNunber(int i,int j)
    {
        return i + j;
    }
}

运行代码,输出:

7

13

 

以上大概就是java中方法的基本使用

 

有好的建议,请在下方输入你的评论。