🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## Java编程那些事儿52—方法声明 郑州游戏学院 陈跃峰 出自:[http://blog.csdn.net/mailbomb](http://blog.csdn.net/mailbomb) ### 第七章 方法 方法(method),在面向过程的语言中称作函数(function),在汇编语言中称作子程序,是一个代码功能块,实现某个特定的功能。在实际的程序开发中,方法是一种基础的组织代码的方式。本部分就介绍方法相关的概念、相关语法以及实际使用时需要注意的问题。 **7.1 方法概述** 方法的概念来源于数学上的函数,在数学中,当数据具有一定的规律时,就是用一个函数来代码该数字的规律,例如f(n)=n则代表1、2、3、……这样的一个数列。在数学上n是参数,对于确定的n值只有一个f(n)的值和它对应。 方法是一组为了实现特定功能的代码块的集合。方法在语法上的功能主要有以下两个: 1. 结构化代码 将代码按照功能进行组织,使代码的结构比较清晰,容易阅读和修改,也就是程序的可维护性强。 2. 减少代码重复 一个固定的功能,可能会在程序中多次使用,在使用时只需要调用写好的方法,而不用重复书写对应的功能代码。 方法在书写时需要注意以下两点: 3. 逻辑严谨 方法实现的一个完整的功能,所以在书写时要考虑到各种可能的情况,并对每种情况做出恰当的处理。 4. 通用性强 方法实现的是一种功能,在实际实现时,可以根据需要,使方法具备一定的通用性,除非必要,否则不要写专用的方法。 在Java语言中,恰当的使用方法,将使程序更加优雅,便于阅读和使用。下面就来介绍方法声明的语法格式。 **7.2 方法声明** 方法声明写在代码中类声明的内部,方法声明的外部,伪代码如下: ~~~                    public class Hello{                             方法声明1                             方法声明2                             ……                    } ~~~ 在Java语言中,方法声明之间没有顺序。 方法声明,就是声明一种新的功能,或者说创造一种新的功能。例如以下是一个求int数据绝对值的方法声明代码: ~~~                    public int abs(int n){                             if(n > 0){                                      return n;                             }else{                                      return –n;                             }                    } ~~~ 这里就实现了求int值绝对值的功能,为了使该功能通用,使用一个参数n代表需要求绝对值的数值,在方法内部使用求绝对值的逻辑:正数的绝对值是自身,负数的绝对值是相反数,使用return语句将方法运算的结果返回。 具体方法声明的语法格式如下: ~~~ 访问控制符 [修饰符] 返回值类型 方法名称(参数列表){                             方法体                    } ~~~ 在实际声明一个方法时,需要依次确定以上内容。下面是具体的说明: 1、 访问控制符 访问控制符限定方法的可见范围,或者说是方法被调用的范围。方法的访问控制符有四种,按可见范围从大到小依次是:public、protected,无访问控制符,private。其中无访问控制符不书写关键字即可。具体的范围在后续有详细介绍。 2、 修饰符 修饰符是可选的,也就是在方法声明时可以不书写。 修饰符是为方法增加特定的语法功能,对于方法实现的逻辑功能无影响。方法的访问控制符有五个,依次是: u static——静态的 u final——最终的 u abstract——抽象的 u synchronized——同步的 u native——本地的 具体修饰符的作用在后续内容中将详细介绍。 3、 返回值类型 返回值类型是指方法功能实现以后需要得到的结果类型,该类型可以是Java语言中的任意数据类型,包括基本数据类型和复合数据类型。如果方法功能实现以后不需要反馈结果,则返回值类型书写为void。 在实际书写方法时,需要首先考虑一下方法是否需要反馈结果,如果反馈结果,则结果的类型是什么?这个根据方法的需要进行确定,例如上面求绝对值的方法,int类型的绝对值还是int类型,所以把返回值类型做成int型。 在方法声明里声明返回值类型,便于方法调用时获得返回值,并对返回值进行赋值以及运算等操作。 4、 方法名称 方法名称是一个标识符,用来代表该功能块,在方法调用时,需要方法名称来确定调用的内容。 为了增强代码的可读性,一般方法名称标识符和该方法的功能一直,例如实现数组排序的方法,可以将方法名称设定为sort。 在Java编码规范中,要求方法的首字母小写,而方法名称中单词和单词间隔的第一个字母大写,例如bubbleSort。 5、 参数列表 参数列表是声明方法需要从外部传入的数据类型以及个数,例如上面求int类型绝对值的方法,每次需要从外部传入一个int类型的值,这就需要在参数列表部分进行声明,语法格式为: 数据类型 参数名称 多个参数时的格式为: 数据类型 参数名称1,数据类型 参数名称2,…… 声明参数时,类型在前,名称在后,如果有多个参数时,参数和参数之间使用逗号进行分割。 参数的值在方法调用时进行指定,而在方法内部,可以把参数看作是已经初始化完成的变量,直接进行使用。 参数列表部分是方法通用性的最主要实现部分,理论上来说,参数越多,方法的通用性越强,在声明方法时,可以根据需要确定参数的个数,以及参数的类型。参数在参数列表中的排列顺序只和方法调用时有关。 6、 方法体 方法体是方法的功能实现代码。方法体部分在逻辑上实现了方法的功能,该部分都是具体的实现代码,不同的逻辑实现代码区别会比较大。 在方法体部分,如果需要返回结果的值,则可以使用return语句,其语法格式为: return 结果的值; 或无结果返回时: return; 如果方法的返回值类型不是void,则可以使用return返回结果的值,要求结果值的类型和方法声明时返回值类型必须一致。如果返回值类型是void时,可以使用return语句实现方法返回,而不需要返回值。当代码执行到return语句时,方法结束,所以return语句的后续书写顺序的代码,例如: ~~~            return 0;            int n = 0; //语法错误,永远无法执行到该语句 另外,如果返回值类型不是void时,需要保证有值返回,例如下面的方法就有语法错误:            public int test(int a){                     if(a < 0){                              return 0;                     }            } ~~~ 则该方法的声明代码中,当a的值大于等于零时,则没有返回值,这语法上称作返回值丢失,这个也是在书写return语句时需要特别注意的问题。