Programação Orientada a Objetos (POO)
Principais conceitos e definições
A Programação Orientada a Objetos (POO) é um paradigma de programação que organiza o código em classes e objetos, permitindo representar elementos do mundo real dentro de um programa.
Na POO, podemos criar objetos que possuem características (atributos) e ações (métodos).
Por exemplo, em um sistema de veículos, podemos representar um carro com sua cor, modelo e ano, além de ações como ligar, acelerar e frear.
1. Classe
Uma classe é um modelo ou molde utilizado para criar objetos. Ela define quais características e comportamentos os objetos terão.
Uma classe é composta principalmente por:
- Atributos: características dos objetos.
- Métodos: ações que os objetos podem executar.

Exemplo: a classe Carro funciona como um projeto que permite criar diferentes carros.
Exemplo: Uma classe Carro pode possuir os atributos cor, modelo e ano, além dos métodos acelerar() e frear().
2. Objeto
Um objeto é um elemento criado a partir de uma classe. Também podemos dizer que um objeto é uma instância de uma classe.
Cada objeto possui seus próprios valores de atributos e pode executar os métodos definidos pela classe.
Exemplo: A partir da classe Carro, podemos criar vários objetos:
Carro 1: Vermelho, 2020
Carro 2: Azul, 2022
Carro 3: Preto, 2024
Todos pertencem à mesma classe, mas cada objeto possui características próprias.
3. Atributos (características)
Os atributos são as informações que descrevem um objeto. Eles representam suas características e armazenam os dados necessários para o funcionamento do programa.
Exemplo: Um objeto da classe Carro pode possuir:
| Atributo | Valor |
|---|---|
cor | Vermelho |
modelo | Gol |
ano | 2020 |
velocidade | 60 km/h |
Os valores dos atributos podem variar de um objeto para outro.
4. Métodos (ações)
Os métodos são funções definidas dentro de uma classe que representam os comportamentos dos objetos.
Eles permitem que os objetos realizem ações e, quando necessário, modifiquem seus atributos.
Exemplo: Um objeto da classe Carro pode executar:
ligar()— liga o carro.acelerar()— aumenta a velocidade.frear()— diminui a velocidade.desligar()— desliga o carro.
5. Encapsulamento
O encapsulamento é o princípio de organizar e proteger os dados internos de um objeto, controlando como eles podem ser acessados ou modificados.
Em vez de permitir que qualquer parte do programa altere diretamente os atributos, podemos utilizar métodos para controlar essas alterações.
Exemplo: Em um carro, o motorista utiliza o acelerador e o freio sem precisar manipular diretamente os componentes internos do motor.
Na programação, podemos criar um método acelerar() que modifica a velocidade, impedindo valores inválidos, como uma velocidade negativa.
6. Herança
A herança permite que uma classe aproveite atributos e métodos de outra classe.
A classe que fornece as características é chamada de classe-pai (superclasse), enquanto a classe que herda essas características é chamada de classe-filha (subclasse).
Exemplo: Uma classe CarroEsportivo pode herdar as características da classe Carro e acrescentar novos comportamentos.
Classe Carro
cor, modelo, acelerar(), frear()
CarroEsportivo ativarTurbo()
CarroEletrico recarregar()
As duas subclasses herdam características da classe Carro e acrescentam comportamentos próprios.
A herança facilita o reaproveitamento de código e evita a repetição de funcionalidades.
7. Polimorfismo
O polimorfismo permite que objetos de diferentes classes respondam à mesma operação de maneiras diferentes.
Isso significa que podemos utilizar um método com o mesmo nome em diferentes classes, mas cada uma pode apresentar seu próprio comportamento.
Exemplo: Considere uma classe Animal com o método fazerSom().
Cachorro
fazerSom() → Au, au!
Gato
fazerSom() → Miau!
O método possui o mesmo nome, mas seu comportamento depende do tipo de objeto que o executa.
8. Abstração
A abstração consiste em representar apenas as características e funcionalidades importantes de um objeto, deixando de lado detalhes que não são necessários para o programa.
Ela permite criar modelos mais simples e fáceis de compreender.
Exemplo: Em um sistema de controle de veículos, podemos representar um carro utilizando apenas:
- Modelo
- Cor
- Ano
- Velocidade
- Métodos para acelerar e frear
Não precisamos representar todos os parafusos, fios ou componentes mecânicos do veículo, pois essas informações não são necessárias para o objetivo do sistema.
Atividade de Fixação – Programação Orientada a Objetos (POO)
QUESTÃO 1 – CLASSE
Na Programação Orientada a Objetos, qual é a principal função de uma classe?
A) Armazenar exclusivamente informações em um banco de dados.
B) Servir como modelo para a criação de objetos, definindo atributos e métodos.
C) Executar somente operações matemáticas.
D) Representar um objeto que já foi criado.
QUESTÃO 2 – OBJETO
Em um programa, foram criados carro1 e carro2 a partir da classe Carro. O que são carro1 e carro2?
A) Métodos da classe Carro.
B) Atributos da classe Carro.
C) Objetos ou instâncias da classe Carro.
D) Classes que obrigatoriamente herdam de Carro.
QUESTÃO 3 – ATRIBUTOS
Considere uma classe Aluno que possui nome, idade e matricula. Esses elementos são exemplos de:
A) Métodos.
B) Atributos.
C) Objetos.
D) Construtores.
QUESTÃO 4 – MÉTODOS
Em uma classe ContaBancaria, existe uma função depositar() que aumenta o saldo da conta. Essa função é considerada:
A) Um atributo.
B) Uma classe.
C) Um objeto.
D) Um método.
QUESTÃO 5 – ENCAPSULAMENTO
Um sistema bancário impede que o saldo de uma conta seja alterado diretamente, permitindo mudanças apenas por métodos como depositar() e sacar(). Qual princípio está sendo aplicado?
A) Herança.
B) Polimorfismo.
C) Encapsulamento.
D) Abstração.
QUESTÃO 6 – HERANÇA
Uma classe Moto herda atributos e métodos da classe Veiculo. Qual conceito da POO está sendo utilizado?
A) Herança.
B) Encapsulamento.
C) Abstração.
D) Polimorfismo.
QUESTÃO 7 – POLIMORFISMO
As classes Cachorro e Gato possuem o método fazerSom(), mas cada uma produz um som diferente. Esse comportamento exemplifica:
A) Encapsulamento.
B) Herança obrigatória de atributos privados.
C) Abstração.
D) Polimorfismo.
QUESTÃO 8 – ABSTRAÇÃO
Ao desenvolver um sistema escolar, o programador representa um aluno apenas por nome, matrícula, turma e notas, ignorando características que não são necessárias ao sistema. Qual conceito está sendo aplicado?
A) Herança.
B) Abstração.
C) Polimorfismo.
D) Encapsulamento.