自学内容网 自学内容网

C#核心(1)概述面向对象

目录

前言

面相过程编程的概念

面相对象编程

为什么使用面向对象编程

核心部分知识概括:

类(class关键词) 

类的三大特性(封装继承多态)

七大原则

总结


前言

在先前的开发学习中,其实我们更多是靠流程来实现目的,但实际我们开发中,肯定不能如此,为什么呢?是因为我们要解决的问题往往在开发过程中都会有新的属性,所以我们就更需要清晰的框架。

这不是简单的函数分类,而是我们把所有流程中的事物都看成一个个物品,然后去丰富物品的属性。

你可能已经想到了结构体,但是博主想说的是,在c#中,结构体并不是核心的内容。

在我们开启c#核心的知识点的讲解之前,我希望为你们讲解一个新的概念。

即为,面向对象编程理念。

我们让gpt举了个例子。

面向过程方法的优势:

  1. 结构简单,直观易懂。
  2. 性能上相对更高,因为不需要额外的对象操作和方法调用的开销。

面向过程方法的劣势:

  1. 不易维护和扩展,因为它将问题分解为一系列的步骤,每个步骤都是独立的函数,难以协调和组织。
  2. 不易复用,因为函数只能在特定的上下文中使用。

面向对象方法的优势:

  1. 更易维护和扩展,因为它将问题分解为一组相互关联且彼此依赖的对象,可以通过修改对象的属性和方法来实现修改和扩展。
  2. 更易复用,因为对象可以在不同的上下文中使用,可以通过继承和组合来实现代码复用。

面向对象方法的劣势:

  1. 结构相对复杂,需要设计类和对象之间的关系。
  2. 性能上相对较低,因为需要额外的对象操作和方法调用的开销。

伪代码示例:

面向过程方法:

FUNCTION calculateArea(length, width)
    area = length * width
    RETURN area
END FUNCTION

length = 5
width = 10
area = calculateArea(length, width)
PRINT "Area:", area

面向对象方法:

CLASS Rectangle
    private length
    private width

    METHOD setLength(newLength)
        length = newLength
    END METHOD

    METHOD setWidth(newWidth)
        width = newWidth
    END METHOD
    
    METHOD calculateArea()
        area = length * width
        RETURN area
    END METHOD
END CLASS

rectangle = new Rectangle()
rectangle.setLength(5)
rectangle.setWidth(10)
area = rectangle.calculateArea()
PRINT "Area:", area

但很显然这些伪代码看上去非常复杂,那博主就来总结一下。

面相过程编程的概念

是一种以过程为中心的编程思想,即我想到什么都在流程里直接加,而不是把他强制和什么对象绑定在一块。

面相对象编程

面向对象是一种对现实世界理解和抽象的编程方法,把相关的数据和方法组织称为一个整体来看待。

我们可以把他理解成,我们只开发结构体(对象),然后用结构体(对象)拼接成过程。(但我们绝对不是开发结构体)

为什么可以这样做,是因为我们能把所有事情都用程序描述和形容出来。

为什么使用面向对象编程

  1. 代码复用率up
  2. 开发效率up
  3. 拓展性up
  4. 逻辑结构清晰度up

核心部分知识概括:

类(class关键词) 

类的三大特性(封装继承多态)

七大原则

这作为补充知识点,博主在这里进行概括,详情看后续有没有余力,出更详细的讲解教程:

面向对象的七大原则是指以下七个原则:单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、合成复用原则。

  1. 单一职责原则(Single Responsibility Principle,SRP):一个类只应该有一个引起它变化的原因。即一个类应该只负责一项职责,当一个类承担了多项职责时,任何一个职责的变化都可能影响到其他职责的正确性。

  2. 开闭原则(Open-Closed Principle,OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。即在不修改现有代码的前提下,通过扩展来增加新的功能。

  3. 里氏替换原则(Liskov Substitution Principle,LSP):子类型必须能够替换掉它们的父类型。即使用一个父类对象的地方,可以替换成子类对象,而且程序不会出错或产生异常。

  4. 依赖倒置原则(Dependency Inversion Principle,DIP):高层模块不应该依赖于低层模块,二者都应该依赖于抽象。即抽象不应该依赖细节,细节应该依赖抽象。

  5. 接口隔离原则(Interface Segregation Principle,ISP):客户端不应该依赖于它不需要的接口。即一个类对另一个类的依赖应该建立在最小的接口上。

  6. 迪米特法则(Law of Demeter,LoD):一个对象应该对其他对象有尽可能少的了解。即一个对象只应该和自己的直接朋友通信,不要和陌生类通信。

  7. 合成复用原则(Composite/Aggregate Reuse Principle,CARP):尽量使用对象组合,而不是继承来达到复用的目的。即在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过委派调用已有对象的方法达到复用的目的。

很复杂,但是我希望你在学习完c#核心后一定好好地恶补这些原则,因为这是你在团队中开发,或者做长远开发必不可少的东西。

总结

我们本节了解了面向对象还有七大原则,也简单了解了一些核心部分的知识点。

那就让我来继续带着你学习c#相关的知识点。

希望你能在我的博客中有所收获,有所成长。

还是那句话,学习路上,戒骄戒躁,脚踏实地。

请期待我的下一篇博客!                                                                               


原文地址:https://blog.csdn.net/a6s686/article/details/142499450

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!