【C#】总结二——面向对象

来源:互联网 发布:朱诺号变轨 知乎 编辑:程序博客网 时间:2024/06/08 06:17

前言

        接着上篇文章的内容,本篇文章主要介绍c#总结第二部分——面向对象方面的内容,这也是学习c#过程中一个很基础的学习内容。


正文

面向对象

什么是面向对象?

面向对象(Object Oriented,简称OO)是指行为的主体是对象。

什么是面向对象编程?                              

面向对象编程(Object Oriented Programming,简称OOP)是指使用对象进行程序设计,以对象作为基本的结构单位。比如Smalltalk、EIFFEL、C++、C#、JAVA等。

为什么要面向对象?

解决程序可能存在的一些问题:不易维护,不易复用,不易扩展,灵活性差
下面以“活字印刷术”为例(第一次印刷“大好河山”,第二次印刷“山清水秀”,第三次印刷“山清水秀   鸟语花香”),介绍一下面向对象的四种特性:
(1)可维护:关键词是“改”,只需更改变化的部分,即第二次在第一次刻好的四个字的基础上加刻“清”“水”“秀” 即可。 
(2)可复用:关键词是“用”,重复使用相同的部分,即第二次使用第一次刻好的“山”。
(3)可扩展:关键词是“扩”,可以增加新的内容,即第三次可以在第二次的基础上加印四个字“鸟”“语”“花”“香”。

(4)灵活性好:关键词是“活”,可以灵活排列内容,即这些字的顺序是可以变化的。


面向对象VS面向过程

举一个简单的例子就可以很容易区分开这两者——下五子棋。
面向对象——研究主体:白棋子、黑棋子、棋盘、规则、下棋双方
面向过程——研究过程:游戏开始-白走-绘制画面-判断输赢-黑棋走--绘制画面-判断输赢-...(循环)-一方胜利-游戏结束


对象与类

概念

对象:是一个自包含的实体,用一组可识别的特性和行为来标识。(通俗的说,所有的东西都是对象,它可以被看到、听到、感觉到。。。
类:具有相同的属性和功能的对象的抽象的集合。(比如说猫,狗,猪等它们不同于人,所以可以把它们抽象成一个“动物”类。)

延伸概念——实例与构造方法

实例:是一个真实的对象(猫是动物的实例,猫也是一个对象。)

实例化:创建对象的过程(创建猫这个实例的过程)

构造方法:也叫构造函数,是对类进行初始化,与类同名。

                            


类的组成——属性,方法

区别

属性

方法

1

公开类成员字段的结构

定义类可以执行的操作

2

解决对象是什么

解决对象能做什么

3

封装对象数据

封装对象行为

4

获取对象字段的值

改变对象的行为

5

名词

动词

(1)属性格式

    public 数据类型 属性名称    {       get{return 字段;}//读访问器,为属性赋值       set{字段=value;}//写访问器,从属性获取值    }
     举例

    class Person    {        private int _age;        public int Aget        {            get { return _age; }            set { _age = value; }        }    }

(2)方法格式

    访问修饰符/static  返回类型 方法名(参数列表)    {        方法主体    }
     举例

    class Cat    {        public void SayHello()//定义无参无返回类型        {            Console.WriteLine("hello world");        }        static void main()//创建对象,调用方法        {            Cat cat = new Cat();            cat.SayHello();        }    }


面向对象的三大特性

封装

(1)定义:把事物抽象为类,对外接口暴露,将实现和内部数据隐藏。
           每个对象都包含它能进行操作所需要的所有信息,因此对象不必依赖其他对象来完成自己的操作。
(2)好处:良好的封装能够减少耦合;
           类内部的实现可以自由地修改;
           类具有清晰的对外接口

继承

(1)定义:在原有类基础上定义一个新类,新类可以直接使用原有类的功能,也可以对这些功能进行扩展,原有类称为“父类”或“基类”,新类称为“子类”或“派生类”。继承体现了从一般到特殊的关系,子类具备父类和自己的双重特性。
          (对象的继承指“is-a”的关系,如果两个对象A和B,可以描述成B是A,则表明B可以继承A。比如猫、狗与动物的关系,猫和狗都是动物的一种,因此他们之间就是继承关系。)
(2)内容:子类可以从父类中继承——方法、域、属性、事件、索引指示器。
           构造方法不能被继承,只能被调用,调用时,使用base关键字。
(3)特点:子类拥有父类非private的属性和功能
           子类具有自己的属性和功能(子类可以扩展父类没有的属性和功能)
           子类还可以以自己的方式实现父类的功能(方法重写)
(4)优缺点:
优点:所有子类公共的部分都放在父类,使代码得到共享,避免了重复
      使修改或继承而来的实现都较为容易
缺点:父类变,子类不得不变
      破坏包装,父类实现细节暴露给子类

多态

(1)定义:表示不同的对象可以执行相同的操作,但要通过他们自己的实现代码来执行。通俗的说,就是一个行为可以以多种不同的状态实现,比如先定义一个动物叫的方法,猫、狗、猪都可以叫,但叫声不同。
(2)特点:子类以父类的身份出现
           子类在工作时以自己的方式来实现
           子类以父类的身份出现时,子类特有的属性和方法不可以使用
(3)实现:子类接替父类的类成员时,父类必须将该成员声明为虚拟的,通过在返回类型前加virtual实现;
           子类可以选择使用override(方法重写/覆写),将父类实现替换为它自己的实现
                      

(4)作用:把子类对象当做父类来看,可以屏蔽不同子类对象之间的差异,写成通用的代码,减少工作量,提高效率。

小结

   每次总结都会发现学习过程中很多理解的不够或理解有误的地方,这就是总结提高我们能力的一个方面,珍惜每一次总结的过程,回头看,点点滴滴都是甘甜。
     
    欢迎指正


0 0
原创粉丝点击