• Java 方法


    方法的概念

    方法就是将功能重复的代码封装成一段独立的小程序,通过调用方法的方式以提高代码的复用性(减少代码重复)

    int year = 2020;
    if ( year % 4 == 0  && 
          year % 100 != 0 || year % 400 == 0)  {
                System.out.println(year + "是闰年!");
    }
    
    
    year = 2052; 
    if ( year % 4 == 0  && 
          year % 100 != 0 || year % 400 == 0)  {
                System.out.println(year + "是闰年!");
    }
    

    当需要判断两个年份是否为闰年时,以上代码存在代码重复。

    方法的定义

    返回值类型 方法名 (参数类型 形式参数1,参数类型 形式参数2,…) {
            执行语句块;
            return 返回值;
    }
    
    
    • 返回值类型: 方法输出数据的类型(如果方法没有返回值,则用关键字 void 来表示)

    • 方法名:类似变量名,可以自定义方法名(需符合 Java 标识符规则)

    • 形式参数:变量(用于存储调用方法输入的数据)

    • 实际参数:调用方法输入的数据

    • 返回值: 调用方法返回的数据

    注意:main 方法是一个特殊方法,它是程序的入口方法,执行程序时会 JVM 会调用 main 方法。

    案例

    获取 2 个整数中的较大的数

    public static int getMax(int left, int right) {
            int max = 0;
            if (left > right) {
                max = left;
            } else {
                max = right;
            }
            return  max;
        }
    

    方法的调用

    • 方法中可以调用其他方法

    • 方法中不能嵌套定义方法

    int numA = 20;
    int numB = 30;
    int max = getMax(numA, numB);  //调用定义的 getMax 方法,并将返回值赋给 max 变量
    

    局部变量

    局部变量指在方法中声明的变量,其作用范围仅限于方法中(局部变量在使用前必须进行初始化)

    局部变量的特点
    • 生存时间:局部变量的生存时间和方法的生存时间一致,调用该方法声明该局部变量并初始化的时,该局部变量被创建并分配内存空间;直到该方法调用结束局部变量也就结束

    • 是否需要初始化:局部变量在使用前必须进行初始化,系统默认不会对局部变量进行初始化数据操作,如果局部变量在使用前没有进行初始化则会在编译器报错;如果局部变量进行了声明没有进行初始化, 但是也一直没有被使用的话编译也是不会报错的

    • 创建位置: 局部变量是创建在内存的栈区中

    注意:main 方法也是方法,所以定义在 main 方法中的变量也是局部变量

    形参与实参

    • 形参:方法中定义的数据类型变量

    • 实参:调用方法输入的变量或常量值

    形参与实参是具有相同数据类型的不同变量,都存储于内存的栈区

    内存划分

    Java 内存划分区域:

    • 栈区:变量(基本类型变量和引用类型变量)

    • 堆区:对象(new 引用类型)

    注意:内存划分为不同的区域,目的是便于数据的存储,提高同一类型数据的存取效率

    方法的重载

    方法的重载指的是在同一个类中,有一个以上的同名方法,但方法的参数个数或参数类型有所不同(与方法的返回值无关)

    方法的重载存在的原因:为了增强方法的阅读性,优化程序设计

    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    Workbox使用策略
    前端性能指标计算方法
    make源文件时出现 /usr/bin/ld: cannot find -lstdc++ 错误
    mac 支持rz sz
    v8引擎的优化
    pixi与lottie-web的benchmark测试
    alinode与官方node性能测试方法及分析
    2019年RTC大会记录
    后端数据推送-EventSource
    技术选型需要关注的软件开源协议
  • 原文地址:https://www.cnblogs.com/binbingg/p/13570356.html
Copyright © 2020-2023  润新知