c#是一种面向对象的语言,额,其实好多新学者压根搞不懂面向对象是啥还有其优点。
我先插入一段代码,然后根据代码分析。
using System;
namespace Test
{
class Circle
{
public double radius;
public double GetArea()
{
return Math.PI * Math.Pow(radius, 2);
}
}
}
1. using,即使用,调用。比如,我们这段代码是保存在Test文件夹中(又称为 命名空间,代码中的第三行),我们写的下一段代码需要使用到本次写的GetArea()方法(第8行),那就需要using Test;
形式:Using + 命名空间; 使用情况: 当我们需要用到某个命名空间即文件夹中的某些功能时。
2.namespace + 命名空间 这行代码是将你下面写的代码保存在一个后缀名为 .cs 的文件中,一般来说文件名是类名,这个文件名就是Circle.cs ,然后再将Circle.cs 保存在Test文件夹中。(c# 读作 c-sharp,所以后缀名是cs),我们再写一个Main()方法,Main()方法是整个程序的入口,即从此处开始执行程序。代码如下:
namespace Test
{
class Program
{
static void Main(string[] args)
{
Circle c = new Circle();
c.radius = 1;
System.Console.WriteLine(c.GetArea());
c.radius = 2;
System.Console.WriteLine(c.GetArea());
}
}
}
Main()一般保存为Program.cs 文件(代码第三行),从上面的代码第一行我们可以看出来,这个也是保存在Test命名空间中。
下面的是在文件资源管理器中文件的截图。
我们可以看到Test文件夹(命名空间)中有一些配置文件和两个.cs文件,分别保存着我们写的两份代码,其中还有一份Test.csproj文件,这个是项目文件(c-sharp project),由此打开整个项目。
继续分析Circle.cs文件中的代码。
3.class Circle class + 类名
我们总喜欢说将东西归类,这里的类就和class是差不多的意思,类包括描述(静态)和动作(动态),描述的术语名称为类成员,动作的术语描述为类方法。
比如。世界上有那么多好看的电影,我们归为class Film。电影的描述有电影名称、销售额度,动作有上映、下线等。
在Circle类中,有类成员radius(半径),有类方法GetArea(算面积)。
一般来说,变量我们都是小写。类名和方法是单词首字母大写(称为帕斯卡命名规则)。我记得不是很清楚,好像是这样。
我们调用类中的成员或者方法都是利用 " . " 运算符。(下面具体介绍)
下面分析的是Program.cs 文件中的内容。
1.假如现在有个类 ,类名是Person
class Person
{
int age;
string name;
void show()
{
Console.WriteLine(age + name);
}
}
那么对于”ming“这个人而言,它属于人,这里的Person 就是类,”ming"就是类的一个实例,我们称之为对象。
Person ———— 类 ———— 抽象———— age ———— name
ming ———— 对象 ———— 具体———— 22 ————“小明”
如上面说到,我们调用类中的成员和方法是通过 "." 操作符,所以在对radius赋值的时候(第八行到第十一行),都用到了“类名.成员/方法” 形式。包括我们用到的 System.Console.WriteLine("********");在这里System是系统自带的一个命名空间,Console是其下的一个类,从类名可以看出是和操纵相关。(console译为 操纵、慰问),而WriteLine() 是Console类下面的一个方法,功能是将括号中的输出至控制台。
2.static void Main(string[] args)是主函数的固定形式,后面再解释各个字段含义。
3.Circle c = new Circle();(第七行) Circle C :声明一个变量 类型为 Cirle类 ,其实和 int i;差不多,c#规定,当需要申请空间时,需使用 new + 类型名,表明需要申请的是某某类型的空间大小。其实 int i = new int(); 只不过可以省略。而类是不可以省略的。
4.运行结果如下