黑马程序员————函数方法
来源:互联网 发布:北京龙袍干尸知乎 编辑:程序博客网 时间:2024/06/01 09:48
----------------------ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
函数和方法
1、函数的简单定义
函数(方法)是将一些代码进行重用的机制。
2、声明函数方法的语法定义
[访问修饰符][static] 返回值类型 方法名([参数1,参数2……])
{
方法体;
}
3、一般注意事项
(1)方法一般定义在类中
(2)无返回类型void
(3)如果声明的方法中,没有参数,后面的小括号不可省略,如果有参数,参数写在小括号中。
(4)定义方法的名称必须有意义,首字母大写。
4、静态方法和非静态方法的调用
静态方法是由static所修饰的函数方法,如果在本类中想要调用静态的方法,直接写类名.方法名() 调用,
或者直接写 方法名(); 如果不是本类中的方法,要在Main函数中调用,这时就需要写“类名.方法名()” 调用方式来
调用类中的方法。如果不是静态的方法,调用的时候,需要将方法所在的类进行实例化,利用对象的名称来调用方法。
小注:静态方法只能访问静态字段(定义在类中的变量 static int a),
非静态的方法可以同时访问非静态的变量和静态的变量。
由const修饰的变量,不能定义成静态的。 static const double PI=3.14;(错误);
5、方法中参数和返回值
(1)方法中参数,用来接收调用者传递过来的数据,参数成为形参。
调用相应的方法,写入对应的参数,成为实参。
(2)方法的返回值只有一个,通过return关键字返回。(不严谨)
6、自己编写函数方法
下面是函数方法的案例:(判断某年是否为闰年)
其运行的结果为:
7、out参数和ref参数
(1)当需要一个方法有多个返回值时,使用out参数。
在方法参数加out,在传参的时候,也必须加out,
表明这个参数不是用来传入值的,是用来传出值的。
在使用out参数时,必须先赋值,如下面SumMaxMin方法中,max=0;min=values[0];
(2)关于out参数函数的案例:
其运行的结果是:
(3) ref功能: ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。简单点说就是,使用了ref效果就几乎和C中使用了指针变量一样。它能够让你直接对原数进行操作,而不是对那个原数的Copy进行操作。
如下面这段代码:
namespace ConsoleApplicationFOR
{
class Program
{
static void Main(string[] args)
{
int a = 90;
Person.MainRef(ref a);
Console.WriteLine(a); //输出的结果显然是91,而不是copy后的90
Console.ReadKey();
}
}
class Person
{
/// <summary>
/// ref 才是真正的传递引用。
/// </summary>
/// <param name="a"></param>
public static void MainRef(ref int a)
{
a++;
}
}
}
{
class Program
{
static void Main(string[] args)
{
int a = 90;
Person.MainRef(ref a);
Console.WriteLine(a); //输出的结果显然是91,而不是copy后的90
Console.ReadKey();
}
}
class Person
{
/// <summary>
/// ref 才是真正的传递引用。
/// </summary>
/// <param name="a"></param>
public static void MainRef(ref int a)
{
a++;
}
}
}
out参数和ref参数小结:
传递到 ref 参数的参数必须最先初始化。这与 out不同,out 的参数在传递之前不需要显式初始化。
尽管 ref 和 out在运行时的处理方式不同,但它们在编译时的处理方式是相同的。因此,如果一个方法采用ref 参数,而另一个方法采用out 参数,则无法重载这两个方法。
8、函数方法的重载
构成重载的条件:方法名称相同(前提)
参数列表 (类型不相同,个数不相同,顺序不相同)
注意:与返回类型无关
参数列表 (类型不相同,个数不相同,顺序不相同)
注意:与返回类型无关
如下面的代码所示:
public int add(int n, int m)
{
int sum;
return sum = n + m;
}
public string add(string a, string b)//方法的重载参数列表中的类型不同,方法名相同。
{
string su;
return su = a + b;
}
public double add(double i, int j)//方法的重载参数列表中的类型顺序不同,方法名相同。
{
double sn;
return sn = i + j;
}
public double add(double i, double j, double k)//参数的个数不同,方法名相同。
{
double ss;
return ss = i + j + k;
}
{
int sum;
return sum = n + m;
}
public string add(string a, string b)//方法的重载参数列表中的类型不同,方法名相同。
{
string su;
return su = a + b;
}
public double add(double i, int j)//方法的重载参数列表中的类型顺序不同,方法名相同。
{
double sn;
return sn = i + j;
}
public double add(double i, double j, double k)//参数的个数不同,方法名相同。
{
double ss;
return ss = i + j + k;
}
- 黑马程序员——函数
- 黑马程序员——函数
- 黑马程序员——函数
- 黑马程序员——函数
- 黑马程序员——函数
- 黑马程序员——函数
- 黑马程序员—数据库函数
- 黑马程序员—字符串函数
- 黑马程序员—java 函数
- 黑马程序员—关于函数
- 黑马程序员————函数方法
- 黑马程序员——方法、对象和函数
- 黑马程序员——构造函数与set方法
- 黑马程序员—数组、方法
- 黑马程序员——函数、递归函数
- 黑马程序员——函数部分总结
- 黑马程序员——SQL 函数
- 黑马程序员——初识构造函数
- SQLite数据库连接字符串
- ubuntu下编译 jrtplib-3.9.1 和 jthread - 1.3.1
- ios注意模拟器和真机时使用的库的区别
- WEBCONFIG里加虚拟路径,用来部署IIS
- 如何用nginx+ffmpeg实现苹果HLS协议 (http living stream)
- 黑马程序员————函数方法
- linux下安装jrtplib-3.9.1
- ios 关于微信获取手机里边分享过微信的app的想法
- HTML5
- ubuntu默认root密码
- hdu 1799 循环多少次? 组合数
- 多线程12: 多线程同步内功心法——PV操作上
- 好好说道 A valid provisioning profile for this executable was not found.
- OLAP 和 数据挖掘的区别