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#相关的知识点。

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

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

请期待我的下一篇博客!                                                                               

### 回答1: 数据库MySQL OCP 8.0 1Z0-908题库是针对MySQL数据库的认证考试的相关题库。MySQL是一种开源的关系型数据库管理系统,OCP 8.0是指MySQL的最新版本,1Z0-908则是该版本的认证考试代码。 这个题库包含了考试中可能遇到的各种题目,涵盖了MySQL数据库的各个方面,包括数据库的基本原理、SQL编程语言、索引、事务管理、备份与恢复等等。 通过学习这个题库,可以增强对MySQL数据库的理解和应用能力。掌握MySQL数据库的基本原理可以帮助我们了解数据库管理系统的工作原理,进而能够更好地进行数据库设计和管理。 同时,学习SQL编程语言可以帮助我们掌握MySQL数据库的增删改查等基本操作,以及高级的查询和数据处理技巧。 此外,掌握索引的原理和使用方法可以提高查询的效率,事务管理的学习可以帮助我们保证数据的一致性和完整性,备份与恢复的学习可以帮助我们保护数据免受损失。 总而言之,通过学习数据库MySQL OCP 8.0 1Z0-908题库,可以全面提升对MySQL数据库的掌握程度,为日后的数据库开发和管理工作打下坚实的基础。 ### 回答2: 很高兴能回答关于数据库MySQL OCP 8.0 1Z0-908题库的问题。 首先,MySQL OCP 8.0 1Z0-908题库是MySQL数据库相关的认证考试,旨在评估考生在MySQL数据库开发方面的专业能力和知识水平。 这个题库涵盖了广泛的MySQL数据库知识,包括SQL语法、数据库管理、数据查询、数据操作、性能优化等方面的内容。考生需要通过这些题目来展示他们对MySQL数据库的理解能力和实践经验。考试内容丰富多样,从基础知识到高级技术都有涉及。 通过准备MySQL OCP 8.0 1Z0-908题库,考生可以更好地掌握MySQL数据库的相关知识,并具备一定的实践能力。这对于那些在数据库开发、数据管理、数据分析等领域工作的人来说尤为重要。 此外,MySQL数据库广泛应用于各行各业,包括互联网、电商、金融、医疗等各个领域,因此具备MySQL OCP 8.0 1Z0-908认证的考生,在职业发展中将具备更强的竞争力。 总结起来,MySQL OCP 8.0 1Z0-908题库是提升个人职业素质和专业能力的一个重要途径。我们可以通过系统地学习和准备这个题库,进一步提高对MySQL数据库的理解和应用能力,为自己的职业发展打下坚实的基础。 ### 回答3: 老哥,你好!关于数据库MySQL OCP 8.0 1Z0-908题库的问题,我来给你详细解答。 MySQL OCP 8.0 1Z0-908题库是一套关于MySQL数据库的认证题库,专门针对MySQL 8.0版本的OCP考试。这套题库包含了一系列问题和练习,旨在测试考生对MySQL数据库的理解和应用能力。 在MySQL OCP 8.0 1Z0-908题库中,你将接触到各种与MySQL数据库有关的主题,包括数据库设计、表的创建、数据类型的选择、查询语句的优化、索引的使用、事务处理、存储过程、触发器等等。这些问题旨在考验你对MySQL数据库各个方面的了解和运用能力。 通过参与MySQL OCP 8.0 1Z0-908题库的学习和练习,你可以提升你的MySQL数据库技能,更好地理解和应用MySQL数据库,进而在OCP考试中取得好的成绩。这套题库可以帮助你检验你的学习成果,让你更加熟悉MySQL数据库的各种特性和操作。 总之,MySQL OCP 8.0 1Z0-908题库是一套有针对性的MySQL数据库认证题库,通过参与这套题库的学习和练习,可以加深对MySQL数据库的理解和应用技能。希望这个回答对你有帮助,如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值