第四章 方法
一、什么是方法
·对一系列语句的命名称为方法,这个名称叫方法名,这些语句叫方法体
·方法减少代码重复,
·方法尽可能小,以便处理一个独立的工作
二、方法的定义
·声明语法:
returnType methodsName(parameterList)
{
method body statements
}
·访问修饰符:建议设为共有,因为方法一般在类的外部调用
·返回值:类型可以是系统内置或自定义,void为无返回值
·参数列表:超过一个参数的用“,”分隔
·变长参数列表用数组表示
·如果方法需要返回信息(返回值类型不是void)则方法中必须有return语句
三、方法的调用
·方法名必须与声明的一致
·参数列表是可选的信息
·每个参数的值必须与声明的类型一致
·不管参数列表有没有参数,都必须用“()”包裹
四、作用域
·在方法体内使用的变量叫做局部变量,类中定义的变量(字段)作用域是整个类,此类中的任何方法都可以访问这个变量,
·类中方法和字段在同一作用域中,因此是没有顺序的
五、使用参数
1.参数的声明和调用
·对于被调用的方法,传入的变量称为“参数”
·可以通过值和引用两种方式传递
·通过引用传递参数
2.传递参数的方式
①传递值类型参数
·当利用值向方法传递参数时,编译程序给实参的值做一份拷贝,并且将此拷贝传递给该方法。被调用的方法不会修改内存中实参的值,使用值参数时,可以保证实参值是安全的
②传递引用类型参数:ref
·传递到ref参数的参数必须最先初始化,而out不同,out参数不需要显示初始化
·和值参不同的是,引用型参数并不开辟新的内存区域。当利用引用型参数向方法传递形参时,编译程序将把实际值在内存中的地址传递给方法
·通过引用传递参数允许函数成员更改参数的值,并保持该更改
③使用输出参数:out
·在声明和调用处都需要写上关键字(ref或out)
·与引用型参数类似,输出型参数也不开辟新的内存区域。与引用型参数的差别在于,调用方法前无需对变量进行初始化。输出型参数用于传递方法返回的数据
④使用参数数组
Eg: public static int Min(params int[] paramsList)
·params后只能跟一维数组
·参数数组只能是最后一个参数
·params不能与ref,out一起使用
·params不能作为重载的依据
3.递归
·递归过程是指调用自身的过程
举例斐波那契数列
六、方法重载
·在同一作用域中,两个方法的名称相同,称为重载(OverLoad)
·方法重载允许方法处理不同的数据类型数据
·方法重载允许方法处理
·参数列表相同而返回值不同,不能用来定义重载
声明重载方法:
·基于不同数量参数
Eg:int greatest(int a,int b,int c)
int greatest(int a,int b)
·基于不同类型参数
Eg: int greatest(int a)
double greatest(double a)
·缺点:难于调试,不好维护
何时需要方法重载:
·需要相同的方法名称但是参数不同
·为已有的代码添加新功能