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;
        }
    }
}

相关文章
|
8天前
|
缓存 算法 Java
Java面试题:深入探究Java内存模型与垃圾回收机制,Java中的引用类型在内存管理和垃圾回收中的作用,Java中的finalize方法及其在垃圾回收中的作用,哪种策略能够提高垃圾回收的效率
Java面试题:深入探究Java内存模型与垃圾回收机制,Java中的引用类型在内存管理和垃圾回收中的作用,Java中的finalize方法及其在垃圾回收中的作用,哪种策略能够提高垃圾回收的效率
12 1
|
2天前
|
SQL 安全 Java
「滚雪球学Java」教程导航帖(更新2024.07.16)
《滚雪球学Spring Boot》是一个面向初学者的Spring Boot教程,旨在帮助读者快速入门Spring Boot开发。本专通过深入浅出的方式,将Spring Boot开发中的核心概念、基础知识、实战技巧等内容系统地讲解,同时还提供了大量实际的案例,让读者能够快速掌握实用的Spring Boot开发技能。本书的特点在于注重实践,通过实例学习的方式激发读者的学习兴趣和动力,并引导读者逐步掌握Spring Boot开发的实际应用。
15 1
「滚雪球学Java」教程导航帖(更新2024.07.16)
|
1天前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
13 2
|
2天前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
13 3
|
4天前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
18 5
|
7天前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
25 6
|
5天前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
13 2
|
8天前
|
缓存 Prometheus 监控
Java面试题:如何监控和优化JVM的内存使用?详细讲解内存调优的几种方法
Java面试题:如何监控和优化JVM的内存使用?详细讲解内存调优的几种方法
28 3
|
9天前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
【7月更文挑战第9天】在Java项目中,使用Logback配置可以实现日志按照不同包名输出到不同的文件,并且根据日志级别分开记录。
24 4
|
8天前
|
缓存 监控 算法
Java面试题:讨论JVM性能调优的常见方法和技巧。
Java面试题:讨论JVM性能调优的常见方法和技巧。
13 1