[C#]面向对象

来源:互联网 发布:编程语言 使用范围 编辑:程序博客网 时间:2024/06/05 09:55

之前一直说面向对象,但是至今依然不太明白面向对象具体是什么东西。直到看到C#面向对象这一节的视频,才明白面向对象大概是什么定西。


面向对象是一种编程的思想,在编写程序的时候不再按照程序的进行一步步来编程,而是直接把抽象成对象。一个类有包含很多相似的对象,这样可以大大提高代码的可维护性和代码的效率。下面来介绍一下对象、类、方法等一些东西。



1、对象


万物皆对象,首先,对象是一个看得见摸得着的具体物体的特指,举个例子,一个特指的人就是一个对象,或者说我正在用的电脑、鼠标等。



2、方法


编程语言中方法是对象的行为,就好比如说一个人是一个对象,而这个人的行为就可以理解为这个人的方法。举个例子,一个人A要去北京,A可以坐火车,可以坐飞机,这些都是A的行为,都可以叫做方法。



3、属性


属性就是一个对象的属性,比如说一个人的特征就可以理解为这个人的属性,他的身高、体重、年龄等等。或者我们经常玩的游戏里会有游戏人物的属性,血量、魔法、生命值等等。



4、类


类就是具有相同属性和功能的抽象的集合。例如,苹果、橘子、香蕉都可以称之为一个类,都属于水果类,但是一个 特指的苹果就是一个对象,实例化对象就是创建对象的过程,也就是C#中经常执行的一个NEW。



5、面向对象的三大特征


(1)封装:每个对象都包含他能进行操作所需要的所有信息,这个特性成为封装,对象不必依赖其他对象来完成自己的操作。就想我们的房子一样,我们随意更换家里的摆设对外部是没有影响的,但是通过窗户和门我们可以和外面的世界连接。

好处:减少耦合、类内部的实现可以自由的修改、类具有清晰的对外接口

(2)继承:继承定义了类如何相互关联,共享特性。继承的工作方式是,定义子类和父类,或叫做基类和派生类,其中子类继承父类的所有特性,还可以定义新的特性。这个更简单啦,猫和狗都继承了哺乳动物的一些特点,但是他们又有各自的特点。

特点:子类拥有父类所有的非private属性和功能;子类可以扩展父类没有的属性和功能;子类可以用自己的方式实现父类的功能(方法重写)。

需要注意的就是继承不可以乱用,继承是一种强耦合的关系,要合理的运用继承。

(3)多态:不同的对象可以执行相同的动作,但要通过自己的代码来执行。比如:猫和狗都继承了动物叫这个特征,但是猫是喵喵叫,而狗是汪汪叫。

注意:子类以父类的身份出现;子类在工作时时以自己的方式实现;子类以父类的身份出现时,子类特有的属性和方法不可以使用。



6、抽象类


没有一个具体的对象与之对应,也就是类的抽象。例如:猫、狗、猪等都是哺乳动物,他们都具有一些共同的属性,所以我们就可以抽象出一个动物类,让猫、狗、猪来继承动物类。

注意:抽象方法类不能实例化;抽象方法是不许被子类重写的方法;如果类中包含抽象方法就必须定义为抽象类;抽象类就是用来被继承的。



7、接口


接口是把饮食公共方法和属性组合起来,一封装特定功能的一个集合。

类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象


  


0 0