Java零基础教程专栏——方法(1)

简介: 方法方法其实就是一段普通的代码片段,并且这段代码可以完成某个特定的功能,而且可以被重复的调用/使用。java 中的方法又叫做 method,在 C 语言中叫做函数。方法定义方法定义时:返回值类型、形参列表可以按照需求进行填写。格式

方法

方法其实就是一段普通的代码片段,并且这段代码可以完成某个特定的功能,而且可以被重复的调用/使用。java 中的方法又叫做 method,在 C 语言中叫做函数。

方法定义

方法定义时:返回值类型、形参列表可以按照需求进行填写。

格式

修饰符  返回值类型  方法名( 形参列表 ){
    方法体代码(需要执行的功能代码)
        return 返回值;
}

修饰符,此项是可选项,不是必须的。

返回值类型,此项可以是 java 语言当中任何一种数据类型,包括基本数据类型,也包括所有的引用数据类型,当然,如果一个方法执行结束之后不准备返回任何数据,则返回值类型必须写 void。返回值类型例如:byte,short,int,long,float,double,boolean,char,String,void 等。

方法名,此项需要是合法的标识符,开发规范中要求方法名首字母小写,后面每个单词首字母大写,遵循驼峰命名方式,见名知意,例如:login、getUsername、findAllUser 等。

形式参数列表(int a, int b),此项又被称为形参,其实每一个形参都是“局部变量”,形参的个数为 0~N 个,如果是多个参数,则采用半角“,”进行分隔,形参中起决定性作用的是参数的数据类型,参数名就是变量名,变量名是可以修改的,也就是说(int a , int b)也可以写成(int x , int y)。

方法体,由一对儿大括号括起来,在形参的后面,这个大括号当中的是实现功能的核心代码,方法体由 java 语句构成,方法体当中的代码只能遵循自上而下的顺序依次逐行执行,不能跳行执行,核心代码在执行过程中如果需要外部提供数据,则通过形参进行获取。

示例:使用方法对2个整数求和并返回。

方法的修饰符    返回值类型  方法名     形参列表 
public static    int    add ( int a , int b ){
    int c = a + b;  执行代码
    return c;  返回值
}

return; 可以立即跳出并结束当前方法的执行。


注意事项:


方法没有申明返回值类型,内部不能使用return返回数据。

方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据。

形参列表可以有多个,甚至可以没有; 如果有多个形参,多个形参必须用“,”隔开,且不能给初始化值。

如果方法不需要返回结果,返回值类型必须申明成void(无返回值), 此时方法内部不可以使用return返回数据。

方法如果没有参数,或者返回值类型申明为void可以称为无参数、无返回值的方法,依次类推。

方法的调用

方法必须调用才可以跑起来,调用格式:格式

方法名(…);

int sum = add(10, 20);
System.out.println(sum);

常见问题:

  • 方法的编写顺序无所谓。

方法与方法之间是平级关系,不能嵌套定义。

方法的返回值类型为void(无返回值),方法内则不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。

return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。

方法不调用就不执行, 调用时必须严格匹配方法的参数情况。

有返回值的方法调用时可以选择定义变量接收结果,或者直接输出调用,甚至直接调用;无返回值方法的调用只能直接调用。

案例:

找出数组的最大值。


要求:使用方法,返回任意整型数组的最大值数据。


分析:


根据格式编写方法


要返回最大值,需要申明返回值类型。


需要接收数组, 需要申明形参列表。


方法内部找出数组的最大值并返回。

public static void main(String[] args) {
    // 需求:使用方法,支持找出任意整型数组的最大值返回。
    int[] ages = {23, 19, 25, 78, 34};
    int max = getArrayMaxData(ages);
    System.out.println("最大值数据是:" + max);
    System.out.println("-------------------");
    int[] ages1 = {31, 21, 99, 78, 34};
    int max1 = getArrayMaxData(ages1);
    System.out.println("最大值数据是:" + max1);
}
public static int getArrayMaxData(int[] arr){
    // 找出数组的最大值返回
    int max = arr[0];
    // 遍历数组的每个元素与最大值的数据进行比较,若较大则替换
    for (int i = 1; i < arr.length; i++) {
        if(arr[i] > max){
            max = arr[i];
        }
    }
    return max;
}

方法重载

  • 同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法。

方法重载(overload)是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java 编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。调用方法时通过传递给它们的不同个数和类型的实参来决定具体使用哪个方法。


代码满足以下三个条件的时候可以构成方法重载。


在同一个类当中。

方法名相同。

参数列表不同:个数不同算不同,顺序不同算不同,类型不同也算不同

public static void main(String[] args) {
        int x1=10;
        int x2=20;
        int retValue1 =sum(x1,x2);
        System.out.println(x1+"+"+x2+"="+retValue1);
        long y1 = 10L;
        long y2 = 20L;
        long retValue2 = sum(y1 , y2);
        System.out.println(y1 + "+" + y2 + "=" + retValue2);
        double z1 = 10.0;
        double z2 = 20.0;
        double retValue3 = sum(z1, z2);
        System.out.println(z1 + "+" + z2 + "=" + retValue3);
    }
    public static int sum(int a,int b){
        return a+b;
    }
    public static long sum(long a,long b){
        return  a+b;
    }
    public  static  double sum(double a,double b){
        return a+b;
    }

注:

  • 方法的重载和方法的返回值类型没有关系
  • 方法重载和修饰符无关

方法重载的识别技巧

  • 只要是同一个类中,方法名称相同、形参列表不同,那么他们就是重载的方法,其他都不管!(如:修饰符,返回值类型都无所谓)
  • 形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。

题目1(训练)

定义一个方法,该方法能够找出两个小数中的较小值并返回。在主方法中调用方法进行测试。

训练提示

  1. 根据方法的功能描述,方法的参数应该是两个小数。
  2. 要返回两个小数的较小值,所以返回值类型也是小数类型。

解题方案

操作步骤

  1. 定义方法getMin(),方法的参数是double a ,double b。
  2. 在方法中对两个数字进行判断,返回较小值。
  3. 在主方法中调用getMin()方法并接受返回值。
  4. 在主方法中打印结果。

参考代码

public class Demo1 {
    public static void main(String[] args) {
        //调用方法
        double min = getMin(3.14, 4.13);
        //打印结果
        System.out.println("较小值是" + min);
    }
    //定义求较小值的方法
    public static double getMin(double a ,double b){
        //对两个小数进行判断
        if(a < b){
            return a;
        }else{
            return b;
        }
    }
}

题目2(训练)

定义一个方法,该方法能够找出三个整数中的最大值并返回。在主方法中调用方法测试执行。

训练提示

  1. 根据题意,方法中需要使用三个整数,所以方法参数应该是三个整数类型。
  2. 方法需要有返回值,返回值的类型也是整数类型

解题方案

操作步骤

  1. 定义方法getMax(),方法的参数是三个int类型变量a,b,c,方法的返回值是int类型。
  2. 在方法中使用多分支if…else…判断出最大值并返回。
  3. 在主方法中调用getMax()方法并接受返回值。
  4. 在主方法中打印结果。

参考代码

public class Demo2 {
    public static void main(String[] args) {
        //调用方法传入参数
        int max = getMax(33, 44, 11);
        //打印最大值
        System.out.println("最大值是" + max);
    }
    //定义获取最大值的方法
    public static int getMax(int a ,int b ,int c){
        //判断出最大值并返回
        if(a > b && a > c){
            return a;
        }else if(b > a && b > c){
            return b;
        }else{
            return c;
        }
    }
}

相关文章
|
1月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
1月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
75 9
|
4天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
18天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
98 26
|
25天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
25天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
1月前
|
安全 Java 开发者
Java中WAIT和NOTIFY方法必须在同步块中调用的原因
在Java多线程编程中,`wait()`和`notify()`方法是实现线程间协作的关键。这两个方法必须在同步块或同步方法中调用,这一要求背后有着深刻的原因。本文将深入探讨为什么`wait()`和`notify()`方法必须在同步块中调用,以及这一机制如何确保线程安全和避免死锁。
43 4
|
1月前
|
Java
深入探讨Java中的中断机制:INTERRUPTED和ISINTERRUPTED方法详解
在Java多线程编程中,中断机制是协调线程行为的重要手段。了解和正确使用中断机制对于编写高效、可靠的并发程序至关重要。本文将深入探讨Java中的`Thread.interrupted()`和`Thread.isInterrupted()`方法的区别及其应用场景。
37 4
|
29天前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
26 1
|
1月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
34 2