面向对象程序设计中的一些问题

简介: 面向对象程序设计中的一些问题

目录

问题一、什么是面向对象程序设计

问题二、对象是什么?类是什么?

问题三、对象和类之间的关系又是什么?

问题四、什么是消息,消息又有哪性质?


问题一、什么是面向对象程序设计

面向对象程序设计是一种新型的程序设计的方式,这种方式的主要特征如下:

程序 =  对象 + 消息,在面向对象中也有三大非常重要的特性,那就是继承,多态以及封装

面向过程编程的核心是过程(流水线思维)。过程是解决问题的步骤。面向过程的设计就像仔细设计一条流水线,以考虑何时处理以及处理什么。优点是它大大降低了编写程序的复杂性。您只需要沿着要执行的步骤堆叠代码。

缺点:使用一组流水线或进程来解决问题,代码对整个程序的影响是非常大的。而面向对象解决了程序的扩展性。对某一个对象单独修改,会立刻反映到整个体系中,对一个对象参数的修改也是非常简单的

下面来看一个定义类的例子:

class Dog:
    def __init__(self,name,blood,aggr,kind):
        self.name = name
        self.hp = blood
        self.aggr = aggr
        self.kind = kind
    def bite(self,person):
        person.blood -= self.aggr

在上面我们就按照Python的方式定义了一个Dog类,并且给这个类创建了许多类的属性以及类的方法

问题二、对象是什么?类是什么?

按比较官方的话语来说对象,就是描述其属性的数据,以及对这些数据施加的一组操作封装,在一起统构成的统一体,对象可以认为是数据加操作,能够用对象完成的操作就可以表示它动态行为,我们通常也把这种操作称为方法,类的定义就更加简单了,它就是将具有相同的数据属性和数据方法的对象抽象出来形成集合体,也就是说类就是对具有相同数据结构和相同操作的一类对象的描述

问题三、对象和类之间的关系又是什么?

用非常简单的话来说,对象就是类的一种具体化,具体到某一个独一无二的个体,而类就是对各种具有相似特征的对象的一种抽象

类:具有相同特征的一类事物(人类,狗类)

对象/实例:具体的某一个事物(人类中的独一无二的你,比如狗类中的具体的某一条狗)

实例化:类——>对象的过程

下面我们就来实现一个类中对象的实例化:

class Dog:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def bite(self,person):
        person.blood -= self.aggr
wangcai = Dog('旺财',4)    //这样我们就实例化了一个对象

问题四、什么是消息,消息又有哪性质?

在面向对象的程序设计之中,一个对象向另一个对象发出的请求,我们就把它称之为消息,我们可以通过接收的消息来执行相对应的操作,我们只有通过消息才能完成对象与对象之间的交互

相关文章
|
1月前
什么叫做 “面向对象” 编程?
本文介绍了面向对象编程(OOP)的概念、核心组件(类和对象)、三大特性(封装、继承和多态)以及六大设计原则,强调了面向对象编程在提高代码的可重用性、模块化、扩展性和维护性方面的优点。
45 1
|
5月前
|
存储 算法 安全
面向对象程序设计C++
面向对象程序设计C++
面向对象和面向过程的理解
面向对象和面向过程的理解
108 1
|
6月前
|
C++
25面向对象的程序设计
25面向对象的程序设计
46 1
|
6月前
面向对象和面向过程
面向对象和面向过程
42 0
|
6月前
|
存储 数据安全/隐私保护 C++
基于C++的面向对象程序设计:类与对象的深入剖析
基于C++的面向对象程序设计:类与对象的深入剖析
76 1
|
Java C++
面向对象—面向过程
从80年代起,人们基于以往提出的有关信息隐蔽和抽象数据类型等概念,以及由MODula2,Ada和Smalltalk和语言所奠定的基础,再加上客观需求的推动,进行了大量的理论研究和是时间探索 ,不同类型的面向对象语言(如:Object-c、c++,Java、object-Pascal)逐步地发展和建立起较完整的和雨后春笋般研制开发出来,OO方法概念理论体系和实用的软件系统。面向对象源于Simula,真正的OOP由Smalltalk奠基
76 0
|
6月前
|
JavaScript 前端开发 开发者
面向过程和面向对象
面向过程和面向对象
72 0
|
算法 Java Unix
面向对象和面向过程的区别?什么是面向过程?什么是面向对象?
面向对象和面向过程的区别?什么是面向过程?什么是面向对象?
3963 1