重新认识面向对象(一)

简介: 重新认识面向对象(一)

1.面向对象的三大特征是什么?面向对象的基础是什么?

封装继承多态。抽象


2.为什么说面向对象的基础是抽象?对抽象做详细解释。

一个提炼存在于事物之间共同拥有的元素的过程,就叫抽象。而这些事务之间共同拥有的元素往往是这一事物区别于其他事物关键的东西,这些元素就构成了事物的本质。


抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。具体到一般化的过程


类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象。接口、类、对象都是在不同层次,不同角度进行抽象的结果。共性—类,特性——接口


有很多帮助我们进行抽象的工具,比如说ER图、UML九种图、架构图、设计模式、流程图、NS图等。


3.我们要注重多少人来干事,而不是干多少事。

我们要注重谁来干事,而不是怎么干事。 这与面向对象的抽象有什么关系?

1:我们抽象出来了类,找出类与类之间的联系。它们完成事情。(理解词义:人)

2:具体完成事情,我们需要实例化对象,通过事件交互、消息驱动的方式进行事件的处理。(理解词义:谁)


3:以对象为基础,以事件驱动对象对事件进行处理。(理解词义干事)


以下以打水为例


首先我们应该抽象出类,打水人类,受水人类,水类,工具类,地点类等,当然我们还可以进一步抽象,参与人类,水类,工具类,地点类。

完成打水这件事情,我们需要实例化出对象,以事件驱动对象对事件进行处理。


抽象:抽象出谁的活。


分治:谁的活谁负责。


本文讲了什么是抽象,如何进行抽象以及深入理解面向对象内在含义,打破了之前对面向对象的固有认知,收获匪浅。


之前的开发都是空有其表,无其魂。重要要转变思想,转变思想。

相关文章
|
6月前
|
算法 数据安全/隐私保护 C++
【软件设计师备考 专题 】程序设计的核心:结构化程序设计与面向对象程序设计(一)
【软件设计师备考 专题 】程序设计的核心:结构化程序设计与面向对象程序设计
87 0
|
6月前
|
SQL 算法 测试技术
【软件设计师备考 专题 】程序设计的核心:结构化程序设计与面向对象程序设计(二)
【软件设计师备考 专题 】程序设计的核心:结构化程序设计与面向对象程序设计
101 0
|
5月前
|
Java
Java面向对象编程新篇章:多态,你准备好了吗?
【6月更文挑战第17天】Java的多态性是面向对象编程的核心,它允许通过统一的接口处理不同类型的对象。例如,在一个虚拟宠物游戏中,抽象类`Pet`定义了`speak()`方法,猫、狗和鹦鹉等子类各自重写此方法以实现独特叫声。在`main`方法中,使用`Pet`类型的引用创建子类对象并调用`speak()`,多态机制确保调用实际对象的方法,实现代码的灵活性和可扩展性。通过多态,我们能以更低的耦合度和更高的复用性编写更优雅的代码。
36 3
|
3月前
|
存储 数据处理
|
6月前
|
Java
类与对象:Java面向对象编程的基石
类与对象:Java面向对象编程的基石
|
6月前
|
并行计算 数据处理 开发者
编程范式的抉择:面向对象编程与函数式编程的对决
在当今的软件开发领域,面向对象编程(Object-Oriented Programming,OOP)和函数式编程(Functional Programming,FP)是两种重要的编程范式。本文将比较并探讨这两种编程范式的特点、优势和适用场景,以帮助开发者在编程选择上做出明智的决策。
|
6月前
|
前端开发 JavaScript Go
写了2年前端从来不用面向对象?
写了2年前端从来不用面向对象?
|
前端开发 JavaScript Go
🤔写了2年前端从来不用面向对象?
对比错误实现和正确实现的代码示例,展示了面向组合的设计方式如何使代码更加干净、可复用,并提升了维护性和灵活性。
128 1
|
自然语言处理 搜索推荐 Java
重拾面向对象软件设计
软件设计的最大目标,就是降低复杂性,万物不为我所有,但万物皆为我用。引用 JDK 集合框架创办人 Josh Bloch 的一句话来结束。学习编程艺术首先要学会基本的规则,然后才能知道什么时候可以打破这些规则。
10915 6
重拾面向对象软件设计