码迷,mamicode.com
首页 > Windows程序 > 详细

C# 面向对象

时间:2020-09-18 04:09:38      阅读:40      评论:0      收藏:0      [点我收藏+]

标签:扩展性   nbsp   计算   sub   开放   阶段   消息传递   形式   自己的   

官方的解释,面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物

面向对象就是所bai有的操作都是基du于对象的,所关注的是对象

一切事物皆对象,对象就是一个 自包含的实体,用一组可识别的特性和行为来标识

从世界观的角度可以认为:

    1、面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;
    2、不同对象之间的相互作用和通讯构成了完整的现实世界。
  
 从方法学的角度可以认为:
  1、面向对象的方法是面向对象的世界观在开发方法中的直接运用;
  2、它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统

 

面向对象思想

  一种编程思想

        人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。这样建立起来的系统才能符合现实世界的本来面目面向对象必须有描述对象及其相互之间关系的语言成分。

系统中一切事物皆为对象;

对象是属性及其操作的封装体;

对象可按其性质划分为类,

对象成为类的实例;

实例关系和继承关系是对象之间的静态关系;

消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;

方法是消息的序列。

面向对象写出的程序的优点
      结构清晰
      可维护性好
      可扩展性好
      稳定性高
面向过程(Procedure Oriented)
          是一种以过程为中心的编程思想。
 
 面向对象与面向过程的区别
    面向过程 —— 是以什么正在发生为主要目标进行编程,
    面向对象 —— 是谁在受影响。

面向对象三大特征继承,封装,多态

1.封装,是把客观事物封装成抽象的类,类可以把数据和行为只让可信的类或对象操作,对不可信的进行隐藏;封装是面向对象的特征之一,是类和对象概念的主要特性; 简单的说,一个类就是一个封装了数据以及操作这些数据的行为的逻辑实体,某些数据和行为可以是私有的,不能被外界访问,通过这种方式,对象对内部数据和行为提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分;

  2.继承,是可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展的能力; 通过继承创建的类称为子类或派生类,被继承的类称为父类或基类;继承的过程,就是从一般到特殊的过程;要实现继承,可以通过继承和组合(Composition)来实现;继承概念的实现方式有两种:实现继承是指直接使用基类的方法而无需额外编码的能力;接口继承是指仅使用方法的名称,但是子类必须提供实现的能力;

  3.多态,是允许将派生类对象赋值给其基类变量的技术,赋值之后,基类变量就可以根据当前赋值给它的派生类对象的类型以不同的方式运作;简单的说,就是允许将派生类类型的指针赋值给基类类型的指针;
  三、面向对象设计的五大基本原则 :S.O.L.I.D
  1.单一职责原则(SRP,Single Responsibility Principle):一个类应该有且只有一个去改变它的理由,这意味着一个类应该只有一项工作;
  2.开放封闭原则(OCP,Open-Close Principle):对象应该对扩展开放,对修改封闭,这就意味着一个类应该无需修改类本身但却容易扩展;
  3. 里氏替换原则(LSP,Liskov Substitution Principle):在对象x为类型T时q(x)成立,那么当S是T的派生类时,对象y为类型S时q(y)也应成立,即对基类的调用同样适用于派生类,每一个基类实例都应该可以替换成它们的派生类实例;
  4.接口分离原则(ISP,Interface Segregation Principle):不应强迫客户端实现一个它用不上的接口,或是说客户端不应该被迫依赖它们不使用的方法;
  5.依赖反转原则(DIP,Dependency Inversion Principle):对象必须依靠抽象而不是具体实现,它表示高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象;

C# 面向对象

标签:扩展性   nbsp   计算   sub   开放   阶段   消息传递   形式   自己的   

原文地址:https://www.cnblogs.com/netlock/p/13684291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!