第四章 方法

一、什么是方法

·对一系列语句的命名称为方法,这个名称叫方法名,这些语句叫方法体

·方法减少代码重复,

·方法尽可能小,以便处理一个独立的工作

二、方法的定义

·声明语法:

  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)

    ·缺点:难于调试,不好维护

何时需要方法重载:

·需要相同的方法名称但是参数不同

·为已有的代码添加新功能