Java(十四)方法

简介: Java(十四)方法

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中方法的基本使用

 

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


目录
相关文章
|
8天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
41 4
|
19天前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
39 17
|
12天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
18 2
|
1月前
|
算法 Java Linux
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
这篇文章介绍了如何使用Java的Graphics2D类在图片上合成另一个照片,并将照片切割成圆形头像的方法。
46 1
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
|
20天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
15 3
|
22天前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
|
20天前
|
Java 开发者
在Java多线程编程中,选择合适的线程创建方法至关重要
【10月更文挑战第20天】在Java多线程编程中,选择合适的线程创建方法至关重要。本文通过案例分析,探讨了继承Thread类和实现Runnable接口两种方法的优缺点及适用场景,帮助开发者做出明智的选择。
14 2
|
20天前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
14 1
|
20天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
27 1
|
20天前
|
Java
在Java多线程编程中,`wait()`和`notify()`方法的相遇如同一场奇妙的邂逅
在Java多线程编程中,`wait()`和`notify()`方法的相遇如同一场奇妙的邂逅。它们用于线程间通信,使线程能够协作完成任务。通过这些方法,生产者和消费者线程可以高效地管理共享资源,确保程序的有序运行。正确使用这些方法需要遵循同步规则,避免虚假唤醒等问题。示例代码展示了如何在生产者-消费者模型中使用`wait()`和`notify()`。
22 1