Módulo 10 - Orientação a objetos: classes
O que é orientação a objetos
10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Reconhecer o problema de manter dados relacionados em variáveis soltas.
- Entender que um objeto junta dados e comportamento no mesmo lugar.
- Diferenciar classe (o molde) de objeto (o item criado a partir dela).
- Assumir a mentalidade de modelar coisas do mundo como objetos.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: O que é orientação a objetos.
Os objetivos desta aula. Reconhecer o problema de manter dados relacionados em variáveis soltas. Entender que um objeto junta dados e comportamento no mesmo lugar. Diferenciar classe (o molde) de objeto (o item criado a partir dela). Assumir a mentalidade de modelar coisas do mundo como objetos.
Veja o essencial, parte por parte.
O problema dos dados soltos. Em programas grandes, dados sobre uma mesma coisa se espalham em variáveis soltas.
O objeto junta dados e comportamento. Procure substantivos do problema: conta, aluno, produto, pedido.
A forma de bolo e os bolos. A forma de bolo é a classe: ela define o formato, mas não é um bolo que se come.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
O problema dos dados soltos
Imagine um programa que controla contas de banco. Sem orientação a objetos, você guardaria o titular em uma variável, o saldo em outra, o número da conta em outra. Para uma conta só, tudo bem. Para dez contas, você acaba com nomes como saldo1, saldo2, titular1, titular2, ou com várias listas paralelas que precisam ficar sempre na mesma ordem. Basta um deslize e o saldo de uma conta cola no titular de outra. Os dados existem, mas nada no código diz que eles pertencem à mesma coisa.
Some a isso as funções. Você escreve depositar(saldo, valor) e sacar(saldo, valor), e agora precisa lembrar de sempre passar o saldo certo. O comportamento (depositar, sacar) mora longe do dado (o saldo). Quando o programa cresce, essa distância vira fonte de bug: alguém deposita no saldo errado, esquece de atualizar uma lista paralela, ou perde a conta de qual variável guarda o quê. O código funciona por sorte, não por desenho.
Dados soltos
- saldo1, saldo2, titular1, titular2 espalhados
- Funções recebem o dado certo por lembrança
- Fácil passar o saldo de outra conta sem querer
- Nada liga o titular ao seu próprio saldo
Dados em um objeto
- Uma conta guarda titular, saldo e número juntos
- As ações moram dentro da própria conta
- Cada objeto mexe só nos seus dados
- O código diz, por desenho, o que é de quem
O objeto junta dados e comportamento
A ideia central da orientação a objetos é simples: em vez de dados de um lado e funções do outro, junte tudo em um pacote chamado objeto. Um objeto conta reúne, no mesmo lugar, os seus dados (titular, saldo, número) e as ações que ele sabe fazer (depositar, sacar, mostrar o saldo). Quando você diz conta.depositar(100), fica claro em qual conta o dinheiro entrou. O dado e o comportamento andam juntos, e o programa passa a espelhar o mundo que ele representa.
Isso muda a forma de pensar o programa. Em vez de perguntar quais variáveis e funções preciso, você pergunta quais coisas existem no meu problema e o que cada uma sabe fazer. Em um sistema escolar, existem alunos, turmas e provas. Em um jogo, existem jogadores, inimigos e itens. Cada coisa vira um tipo de objeto, com os seus dados e as suas ações. O código fica mais fácil de ler porque conversa na língua do problema, não na língua das variáveis soltas.
A forma de bolo e os bolos
A distinção entre classe e objeto costuma travar quem começa, e a analogia da confeitaria resolve. A forma de bolo é a classe: ela diz que todo bolo terá certo formato, mas ninguém come a forma. Cada bolo que sai dela é um objeto, também chamado de instância. Todos os bolos compartilham o formato, porque vieram da mesma forma, mas cada um tem o seu próprio recheio, a sua cobertura, o seu peso. Um bolo de chocolate e um bolo de morango saem da mesma forma e continuam sendo bolos diferentes.
Traduzindo para o banco: a classe ContaBancaria é a forma. Ela define que toda conta terá um titular e um saldo, e saberá depositar e sacar. A conta da Ana e a conta do Bruno são dois objetos criados dessa mesma classe. Elas têm a mesma estrutura, porque vieram do mesmo molde, mas a Ana pode ter saldo de 500 e o Bruno saldo de 30. Alterar o saldo da Ana não toca no saldo do Bruno, assim como fatiar um bolo não muda o bolo do lado. Nas próximas aulas você escreve essa forma em Python e assa os seus primeiros bolos.
Teste rápido
Na analogia da confeitaria, o que representa a classe e o que representa o objeto?
Perguntas frequentes
- Preciso usar orientação a objetos em todo programa Python?
- Não. Programas pequenos e scripts diretos vivem bem só com funções, e isso é pythônico. A orientação a objetos brilha quando há coisas com dados e comportamento que se repetem, como várias contas, vários alunos, vários produtos. Ela é uma ferramenta a mais, não uma obrigação.
- Qual a diferença entre classe e objeto, em uma frase?
- A classe é o molde que descreve como um tipo de coisa será; o objeto é uma coisa concreta criada a partir desse molde. Uma classe, muitos objetos, como uma forma de bolo e muitos bolos, cada um com o seu recheio.
- Objeto e instância são a mesma coisa?
- Sim. Instância é o nome técnico de um objeto criado a partir de uma classe. Dizer a conta da Ana é uma instância de ContaBancaria é o mesmo que dizer que ela é um objeto dessa classe. Os dois termos aparecem o tempo todo e valem por igual.
- Por que dados soltos em variáveis dão tanto problema?
- Porque nada no código diz que saldo1 e titular1 pertencem à mesma conta. Com muitas coisas, é fácil trocar a ordem, esquecer de atualizar uma lista paralela ou passar o dado errado para uma função. O objeto amarra os dados relacionados em um só lugar, e isso previne a classe inteira de bug.
- Já vi listas e dicionários guardando dados juntos. Não basta?
- Um dicionário até agrupa os dados de uma conta, mas o comportamento continua solto em funções separadas. A classe vai além: junta os dados e as ações no mesmo lugar, e ainda deixa criar quantas contas quiser com a mesma estrutura garantida. Para poucos dados sem comportamento, o dicionário resolve; para coisas com ações próprias, a classe é mais clara.
- Orientação a objetos é só do Python?
- Não. É um jeito de organizar programas usado em muitas linguagens, como Java, C++ e C#. Os nomes classe, objeto, método e atributo se repetem em quase todas. Aprender bem em Python facilita entender o mesmo conceito nas outras depois.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.