为什么要面向对象?
诚然,PO编程解决大型软件并不是没有特例,庞大的linux系统不也是用C堆砌成的么?但在我们常用的商业软件中,绝大部分会用到OO而不是PO。首先重编程的本质上来说起,编程的本质其实是对事物的抽象,我们将实物抽象成数据结构,比如我们要模拟一台汽车的加速过程,我们得有汽车的数据结构
Struct car{
Int weight;
Int power;
Int speed;
}
然后对汽车各个参数进行物理模拟运算。在OO编程中提供给了我们一种忽略细节的能力,汽车是由轮子,底盘等组成,就好像我们造一辆汽车一样,如果我们可以把底盘,轮子,按照软件留给我们的接口将他们组装起来,使得我们并不需要关注底盘是怎么造的这种细节活,这样就大大的加大了我们的工作效率并且减少软件出错的可能性。
注:OO的由来可以自行google“软件危机”
最简单的C#程序
强烈建议新手学习时用vs图形拖拽界面,这样会影响你对整个过程的理解,等到整个面向对象语法差不多的时候开始去看图像界面的编程,这样会对整个面向对象有个新的认识;
首先还是从控制台程序入门也就是新建一个控制台程序。下面是一个hello world程序
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(“hello world”);
}
}
}
运行后,界面会有一个黑框一闪而过,要看到结果我们只需要在Main()函数的结尾加一句
Console.ReadKey();
这个和C语言编程中我们在最后加上一句 getch();的原理一样。
C#中是从Main函数为程序入口,即所有的程序都是重这里开始的,我们要执行的程序全放在Main()函数里面,然后就会顺序执行了,这个和C语言是一样的。
好了,我们现在我们要新建一个函数,他的作用是打印hello world
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
printhello();
Console.Readkey();
}
static void printhello()
{
Console.WriteLine(“hello world”);
}
}
}
想必细心的同学都注意到了,这里我们新建的函数前面都有一个static ,好奇的同学会把前面的static去掉,结构发现无法编译。这个是怎么回事呢?这个就得从面相对象的基本元素类说起。
类是所有面相对象里面的基本要数,面相对象的所有结构都是基于对象的。对象就是我们前面所说的汽车轮胎,所有的事物都可以抽象成对象,而类是对象的模板,就好比轮胎的图纸,我们可以通过这张图纸无限复制出轮胎。
前面的 class Program{}就代表这是一个类。类=属性+方法。就好比你要计算机抽象一个你理想中女朋友的模型,属性就代表他的三围 a,b,c;是一些实实在在的数据类型。方法就代表她需要的技能如 eat(){}(女同学们轻拍),注意这里没有static。
class GirlFriend
{
int a;
int b;
int c;
void eat()
{}
}
在C#中如果你加上static 就代表这个方法或属性不是这个类中的了。属于全局的,我们放在类里面实属语法规则,也就是说如果我们吧所有的方法都加上static 就和C语言,我们就可以像C语言那样写程序了。
所以在上面printhello()中,如果前面没有加上static,printhello就属于类里面的方法,那么如果我们要使用该方法应该按照以下的方法来使用;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
Program hello = new Program();
Hello.printhello();
Console.Readkey();
}
void printhello()
{
Console.WriteLine(“hello world”);
}
}
}
Program hello = new Program();这句的意思就是根据图纸造轮胎的过程,其中的hello就是对象的名字,我们根据名字引用方法。就好比你的有个找到个女朋友,然后调用吃东西,他就可以吃了。前提是你的有一个女朋友,new 关键字就给你创造一个“实例”女朋友。
下节具体介绍类中的细节。
To be continue...