函数 (概念,定义,重载,参数)

来源:互联网 发布:网络用语鱼是什么意思 编辑:程序博客网 时间:2024/06/05 19:54
函数的概念
函数就是定义在类中具有特定功能的一段独立小程序。(函数也称方法)

函数的定义
函数可以帮助我们把功能性,逻辑性的代码进行封装,从而实现重复调用,提高了程序的复用性和效率。
定义函数的格式:
修饰符返回值类型 函数名 (参数类型 参数1,参数类型,参数2,...参数类型,参数n)
{
执行语句;
return 返回值;
}
  • 函数名:函数的名字,一定要按照命名规范起名,表明函数的作用。
  • 返回值:表示这个函数运行后最后的结果。
  • 返回值类型:取决于返回值的类型。
  • return:表示将返回值返回的动作,会把返回值返回到调用者;同时还能结束函数功能。
  • 参数列表(小括号中的内容):定义这个函数所需要的参与运算的未知数据,并且每一个数据都要有相应的数据类型,可以理解为变量。
  • 修饰符:修饰这是个什么样的函数,可以有多个修饰符。
  • 函数体:函数运行的主体部分,以大括号表示作用范围。

函数的用法
我们常用的两种方法:直接调用,赋值调用。
注意:函数的返回猴子有无要根据函数的具体功能而定,如果,没有返回值,那么返回值类型就写void,void 也是关键字。函数参数真实参与运算的是调用传入的实际参数,应能分别实参和形参这两种命名的区别。

函数的特点
定义函数可以将功能代码进行封装。
定义函数便于对该功能进行复用。
函数的出现提高了代码的复用性。
函数只有被调用才会执行。
如果函数没有具体的返回值,返回值类型就用void来表示。那么函数中的return语句可以省略不写。
return有两个作用:1,返回值。2结束函数功能。如果带有返回值,则return关键字必不可少,并且注意多分支结构都必须写明返回。

函数中只能调用其他函数,不能在函数内定义函数。
定义函数是,函数的结果应该返回给调用者,交个调用者处理

函数的重载
概念:重载(overload):同一个类中允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可;

public int add (int x, int y)//获取两个整数的和{return x + y;}//获取两个小数的和public double add(double x, double y){return x + y;}//获取三个整数的和public int add (int x,int y, int z){return x + y + z;}

class Demo{static voidMain(string[] args){Add( 1,2 ,1 ); //第三个参数1 将取代原有参数的区别Add( 1,2 ); //第三个参数没有,则默认输入可选参数}static int Add(inta,int b ,int c = 0 ) //可选参数的写法{System.Console.Print("a :{0},b:{1},c:{2} ",a,b,c);}}


函数重载和可选参数的区别:
可选参数,是在声明方法的某个参数的时候为其指定一个默认值,在调用该方法的时候如果采用该默认值,你就无须指定该参数.换句话说,在没有明确指定该参数值时,函数将自动使用预先指定的默认值.
可选参数实例:

所有可选参数必须写在普通参数的右边,如果写在普通参数的左边,则会编译报错
重载匹配原则分析:
1.当调用者匹配类中具有重载函数时,先找出符合参数个数的所有重载函数.
2.在符合参数个数的前提下,找到最符合类型的重载函数,如果没有,隐式转换后看是否负责匹配.
3.当符合条件的重载函数不止一个时,优先选择不带可选参数的重载函数.
重载实例:
class Demo{static voidMain(string[] args){Add(1, 2, 1);Add(1, 2, 5.0f);Add(1.0f, 2.0f,5.0f);Add(1, 2);System.Console.ReadLine();}static void Add(int a,int b){System.Console.WriteLine("第一个函数被调用!");System.Console.WriteLine("a :{0} ,b :{1}, ", a, b );}static void Add(int a,int b, int c = 0){System.Console.WriteLine("第二个函数被调用!");System.Console.WriteLine("a :{0} ,b :{1},c :{2} ", a, b, c);}static void Add(int a,int b, float c){System.Console.WriteLine("第三个函数被调用!");System.Console.WriteLine("a :{0} ,b :{1},c :{2} ", a, b, c);}static void Add(doublea, double b, double c){System.Console.WriteLine("第四个函数被调用!");System.Console.WriteLine("a :{0} ,b :{1},c :{2} ", a, b, c);}}


原创粉丝点击