gpt4 book ai didi

OOP,对象概念

转载 作者:行者123 更新时间:2023-12-04 19:53:03 26 4
gpt4 key购买 nike

根据标准定义,对象是包含数据和行为的实体。
根据我的理解,数据是从外部发送的。例如,我们有一个计算数字平方的类。我们创建一个实例并将消息与数字一起发送到对象以计算平方。
我们不是从外部发送数据吗?
为什么所有定义都声明对象包含数据?
谢谢

最佳答案

在这种情况下,数据是对象的状态。定义说对象的状态/数据应该在内部存储。例如,考虑以下类:

class Math {

Double square(double x) {
return x * x;
}
// other similar functions
}

作为一种语言结构,它是一个类。但是,它不是面向对象意义上的真正类。因为它没有状态或数据。它只是一个包裹在类结构中的函数。这不一定是错误的。因为在这种情况下,碰巧您有不需要状态的操作。

定义试图强调的是:你有一个真实的对象,当它(或它的类)同时具有数据和行为时。并非类构造的每个用法都代表一个真正的对象。

因此,如果表示它的类满足以下三个条件,则您拥有一个对象。
  • 该类具有状态/日期。如果没有,那么它只是一堆函数。它不是面向对象的,它是过程性的。
  • 类有行为。如果没有,那么它只是一个容器,一堆变量(C 中的结构)。
  • 不仅类有状态/数据和行为/方法,而且数据和行为之间有内在的联系。这意味着仅仅将一些变量和函数扔在一起并不能构成一个真正的对象。例如,如果您有状态/数据并且您也有一些方法,在类中,但如果该函数不需要对任何状态进行操作,则存在一个问题,该方法是否真的属于该类。

  • 下面是一个简单的例子,我认为是一个适当的类(对象的表示)。
    Class Patient {
    // blood pressure
    double systolic;
    double diastolic;
    double weight;
    int age;
    public Patient(double systolic, double diastolic, double weight, int age){

    }

    Public boolean isHealthy(){
    // do some calculations and algorithms on age, weight and blood pressure indicators.
    // return result as true of false
    }

    }

    在这里,我们看到该类同时具有状态和行为。我们还看到状态和行为都真正属于这个类。它们是患者概念的属性。我们进一步看到,操作与数据有着内在的联系。不咨询/使用患者的状态,您无法确定患者是否健康。

    关于OOP,对象概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15098278/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com