Java编程那些事儿52—要领声明
副标题#e#
第七章 要领
要领(method),在面向进程的语言中称作函数(function),在汇编语言中称作子措施,是一个代码成果块,实现某个特定的成果。在实际的措施开拓中,要领是一种基本的组织代码的方法。本部门就先容要领相关的观念、相关语法以及实际利用时需要留意的问题。
7.1 要领概述
要领的观念来历于数学上的函数,在数学中,当数据具有必然的纪律时,就是用一个函数来代码该数字的纪律,譬喻f(n)=n则代表1、2、3、……这样的一个数列。在数学上n是参数,对付确定的n值只有一个f(n)的值和它对应。
要领是一组为了实现特定成果的代码块的荟萃。要领在语法上的成果主要有以下两个:
l布局化代码
将代码凭据成果举办组织,使代码的布局较量清晰,容易阅读和修改,也就是措施的可维护性强。
l淘汰代码反复
一个牢靠的成果,大概会在措施中多次利用,在利用时只需要挪用写好的要领,而不消反回信写对应的成果代码。
要领在书写时需要留意以下两点:
l逻辑严谨
要领实现的一个完整的成果,所以在书写时要思量到各类大概的环境,并对每种环境做出得当的处理惩罚。
l通用性强
要领实现的是一种成果,在实际实现时,可以按照需要,使要领具备必然的通用性,除非须要,不然不要写专用的要领。
在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语句将要领运算的功效返回。
详细要领声明的语法名目如下:
会见节制符[修饰符]返回值范例要领名称(参数列表){
要领体
}
#p#副标题#e#
在实际声明一个要领时,需要依次确定以上内容。下面是详细的说明:
1、会见节制符
会见节制符限定要领的可见范畴,可能说是要领被挪用的范畴。要领的会见节制符有四种,按可见范畴从大到小依次是:public、protected,无会见节制符,private。个中无会见节制符不书写要害字即可。详细的范畴在后续有具体先容。
2、修饰符
修饰符是可选的,也就是在要领声明时可以不书写。
修饰符是为要领增加特定的语法成果,对付要领实现的逻辑成果无影响。要领的会见节制符有五个,依次是:
ustatic——静态的
ufinal——最终的
uabstract——抽象的
usynchronized——同步的
unative——当地的
详细修饰符的浸染在后续内容中将具体先容。
3、返回值范例
返回值范例是指要领成果实现今后需要获得的功效范例,该范例可以是Java语言中的任意数据范例,包罗根基数据范例和复合数据范例。假如要领成果实现今后不需要反馈功效,则返回值范例书写为void。
在实际书写要领时,需要首先思量一下要领是否需要反馈功效,假如反馈功效,则功效的范例是什么?这个按照要领的需要举办确定,譬喻上面求绝对值的要领,int范例的绝对值照旧int范例,所以把返回值范例做成int型。
在要领声明里声明返回值范例,便于要领挪用时得到返回值,并对返回值举办赋值以及运算等操纵。
4、要领名称
要领名称是一个标识符,用来代表该成果块,在要领挪用时,需要要领名称来确定挪用的内容。
为了加强代码的可读性,一般要领名称标识符和该要领的成果一直,譬喻实现数组排序的要领,可以将要领名称设定为sort。
在Java编码类型中,要求要领的首字母小写,而要领名称中单词和单词隔断的第一个字母大写,譬喻bubbleSort。
5、参数列表
参数列表是声明要领需要从外部传入的数据范例以及个数,譬喻上面求int范例绝对值的要领,每次需要从外部传入一个int范例的值,这就需要在参数列表部门举办声明,语法名目为:
数据范例参数名称
多个参数时的名目为:
数据范例参数名称1,数据范例参数名称2,……
声明参数时,范例在前,名称在后,假如有多个参数时,参数和参数之间利用逗号举办支解。
参数的值在要领挪用时举办指定,而在要领内部,可以把参数看作是已经初始化完成的变量,直接举办利用。
#p#分页标题#e#
参数列表部门是要领通用性的最主要实现部门,理论上来说,参数越多,要领的通用性越强,在声明要领时,可以按照需要确定参数的个数,以及参数的范例。参数在参数列表中的分列顺序只和要领挪用时有关。
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语句时需要出格留意的问题。