面向对象编程——类与对象(C#)(未写完)
属性提供灵活的机制来读取、编写或计算私有字段的值,而方法则是以一部分代码构成代码块的形式存在,用来实现一部分特定的功能。
方法
方法是一种用于实现可以由对象(或类)执行的计算机或者操作的成员,是一个已命名的语句集。每个方法都有一个名称和一个主体。
方法的专用明
方法在类或结构中声明,声明时需要指定修饰符、返回类型、方法名称以及参数。方法的参数放在括号中,并用逗号隔开。空括号表示 方法不需要参数。
定义方法的语法如下:
<访问修饰符> <返回类型> <方法名称>(参数列表)
{
//方法主体
}
访问修饰符:主要用于决定变量或方法对于另一个类的可见性。
返回类型:一个方法可以返回一个值。返回类型是方法返回的值 的数据类型。如果方法不返回任何值 ,则返回类型为void。
方法名称:必须是一个有意义的标识符,并且区分大小写。该标识符应该描述出方法的用途,但是不能与类中声明的其他标识符相同。
参数列表:是指在方法名后面括号内的一系列参数,这些参数是用来传递和接收方法的数据。
方法主体:包含调用方法时的实际执行语句。
用户可以为大多数方法提供一些数据来处理,并让其返回一些有用的信息。同时方法还是一种基本的、功能强大的编译机制。
C#中调用方法
调用代码中的方法,可以简化大量重复性的操作。
编写程序,分别计算7、6、5、4的阶乘。
using System;
namespace Project1
{
class Program
{
static void Main(string[] args)
{
//求7的阶乘
int factorial = 1;
for (int i = 7; i > 0; i--) factorial *= i;
Console.WriteLine("7! ={0}\n", factorial);
//求6的阶乘
factorial = 1;
for (int i = 6; i > 0; i--) factorial *= i;
Console.WriteLine("6! ={0}\n", factorial);
//求5的阶乘
factorial = 1;
for (int i = 5; i > 0; i--) factorial *= i;
Console.WriteLine("5! ={0}\n", factorial);
//求4的阶乘
factorial = 1;
for (int i = 4; i > 0; i--) factorial *= i;
Console.WriteLine("4! ={0}\n", factorial);
}
}
}
运行结果如下:
编写程序,通过对方法的调用,对上例进行优化。
using System;
namespace Project2
{
class Program
{
static void Factorial(int a)
{
int factorial = 1;
for (int i = a; i > 0; i--)
{
factorial *= i;
}
Console.WriteLine("{0}的阶乘={1}\n", a, factorial);
}
static void Main(string[] args)
{
Factorial(7);
Factorial(6);
Factorial(5);
Factorial(4);
}
}
}
运行结果如下:
在C#语言中,除了Main方法以外,其他所有的方法都允许调用其它方法或者被其他方法调用。同时方法还可以对自身进行调用,所以对调用自身的方法又称之为递归调用。
编写程序,使用递归调用,求出8的阶乘。
using System;
namespace Project3
{
class Program
{
static int Method(int n) //用户自定义求阶乘的方法
{
int num = 0;
if (n == 0)
{
return 1;
}
else
{
num = n * Method(n - 1); //在Method方法中调用自身
}
return num;
}
static void Main(string[] args)
{
Console.WriteLine("递归调用8!={0}", Method(8));
}
}
}
运行结果如下: