1
resposta

Denominações/conceitos

Quando o exercício fala em dados e comportamentos andam juntos, esta se referindo a atributos e métodos? propriedade = atributos = estado; métodos = operações = comportamento;

Conceitos que não foram mencionados.

1 resposta

Quando diz que Dados e Comportamento andam juntos no meu entender é que para aplicar Orientação a Objetos você precisa ter de maneira bem clara o que é de que/quem.

Assim tendo as Classes com suas Funcionalidades claras facilitando a manutenção e uso do código assim como diminuindo repetições.

O Dado seria o que a Classe representa.

O Comportamento seria o que a Classe faz.

Por exemplo; Eu sou dono de uma concessionária, sendo assim eu posso criar uma Classe chamada Carro, onde sempre que eu tiver um tipo (n sei se é tipo que fala, n sei mtu de carros) de carro novo para ser vendido eu crio ele com a classe:


class Carro:
    def __init__(self, nome, ano, marca, estoque):
        self.nome == nome
        self.ano == ano
        self.marca == marca
        self.__estoque = estoque

    @property
    def estoque(self):
        return self.__estoque

    def aumenta_estoque(self, valor):
        self.__estoque += valor

    def vendido(self, quantidade):
        if carros_vendidos() > 0:
            vendas = carros_vendidos()
            self__estoque -= vendas
            print("Estoque alterado com sucesso")
        else:
            print(f"Nenhum {self.nome} foi vendido até dado momento")



# Exemplo de carro novo:
carro_novo = Carro("Gol", 2009, "Volkswagen", 10)

Mas essa classe não tem todas as informações que um carro especifico que um cliente quiser vai ter, essas informações vão ficar em uma subclasse* que tem funções mais específicas como cor, km's, se vai ter ou não alguma custumização, entre outras coisas.

*Você vai ver sobre subclasses no próximo curso se não me engano

Então os Dados da Classe Carro são o nome, ano, marca e estoque do carro que você criar.

Os Comportamentos da classe Carro é reduzir ou aumentar o estoque conforme as vendas.

Ambos estão juntos e "ligados" dentro da Classe Carro. Se você faz um código procedural não vai ter um relacionamento direto entra cada um dos comportamentos e os dados.

Lembre sempre que cada uma tem suas vantagens e desvantagens :)