Desvendando a Programação Orientada a Objetos: Instanciação, Construtores, Atributos e Métodos
5 min read
Desvendando a Programação Orientada a Objetos: Instanciação, Construtores, Atributos e Métodos

A programação orientada a objetos (POO) é um paradigma de programação que organiza o código em unidades chamadas de objetos. Cada objeto possui características (atributos) e comportamentos (métodos) que o definem e o diferenciam dos demais. A POO permite criar programas mais modulares, reutilizáveis e fáceis de manter.
Neste post, vamos desvendar alguns conceitos fundamentais da POO: instanciação, construtores, atributos e métodos. Vamos usar a linguagem Python como exemplo, mas os conceitos se aplicam a outras linguagens orientadas a objetos.
Instanciação
A instanciação é o processo de criar um objeto a partir de uma classe. Uma classe é uma estrutura que define os atributos e os métodos comuns a todos os objetos de um determinado tipo. Por exemplo, podemos definir uma classe chamada Pessoa
que possui os atributos nome
, idade
e sexo
e os métodos falar
e andar
.
Para criar um objeto da classe Pessoa
, usamos o operador ()
após o nome da classe, passando os valores dos atributos como argumentos. Por exemplo:
Python
# Criando um objeto da classe Pessoa
p1 = Pessoa(“João”, 25, “M”)
# Acessando os atributos do objeto
print(p1.nome) # João
print(p1.idade) # 25
print(p1.sexo) # M
O objeto p1
é uma instância da classe Pessoa
. Podemos criar quantas instâncias quisermos, desde que tenhamos memória suficiente para armazená-las. Cada instância é um objeto único, com seus próprios valores de atributos e métodos.
Construtores
Um construtor é um método especial que é executado automaticamente quando um objeto é criado. O construtor serve para inicializar os atributos do objeto com os valores passados como argumentos na instanciação. Em Python, o construtor é definido pelo método __init__
, que recebe como primeiro parâmetro a palavra-chave self
, que representa o próprio objeto.
Por exemplo, na classe Pessoa
, podemos definir o construtor da seguinte forma:
Python
# Construtor
def __init__(self, nome, idade, sexo):
# Inicializando os atributos do objeto
self.nome = nome
self.idade = idade
self.sexo = sexo
O construtor é opcional, mas é recomendado usá-lo para garantir que os objetos sejam criados de forma consistente e segura.
Atributos
Os atributos são as variáveis que armazenam as características de um objeto. Os atributos podem ser de dois tipos: de instância ou de classe.
Os atributos de instância são aqueles que pertencem a cada objeto individualmente, e podem ter valores diferentes para cada instância. Por exemplo, na classe Pessoa
, os atributos nome
, idade
e sexo
são de instância, pois cada pessoa pode ter um nome, uma idade e um sexo diferentes.
Os atributos de classe são aqueles que pertencem à classe como um todo, e têm o mesmo valor para todas as instâncias. Os atributos de classe são definidos fora do construtor, e são acessados usando o nome da classe, não o do objeto. Por exemplo, na classe Pessoa
, podemos definir um atributo de classe chamado especie
, que tem o valor "Humana"
para todas as pessoas.
# Atributo de classe
especie = “Humana”
# Construtor
def __init__(self, nome, idade, sexo):
# Atributos de instância
self.nome = nome
self.idade = idade
self.sexo = sexo
Os atributos de classe são úteis para armazenar valores constantes ou compartilhados por todas as instâncias de uma classe.
Métodos
Os métodos são as funções que definem o comportamento de um objeto. Os métodos podem ser de dois tipos: de instância ou de classe.
Os métodos de instância são aqueles que operam sobre os atributos de instância de um objeto, e podem variar de acordo com os valores desses atributos. Os métodos de instância recebem como primeiro parâmetro a palavra-chave self
, que representa o próprio objeto. Por exemplo, na classe Pessoa
, podemos definir um método de instância chamado falar
, que imprime uma mensagem usando o atributo nome
do objeto.
class Pessoa:
# Atributo de classe
especie = “Humana”
# Construtor
def __init__(self, nome, idade, sexo):
# Atributos de instância
self.nome = nome
self.idade = idade
self.sexo = sexo
# Método de instância
def falar(self):
# Usando o atributo de instância nome
print(f”Olá, eu sou {self.nome} e sou da espécie {self.especie}.”)
Os métodos de classe são aqueles que operam sobre os atributos de classe de uma classe, e têm o mesmo comportamento para todas as instâncias. Os métodos de classe são definidos usando o decorador @classmethod
, e recebem como primeiro parâmetro a palavra-chave cls
, que representa a própria classe. Por exemplo, na classe Pessoa
, podemos definir um método de classe chamado contar
, que imprime o número de pessoas criadas.
class Pessoa:
# Atributo de classe
especie = “Humana”
# Atributo de classe para contar o número de pessoas
contador = 0
# Construtor
def __init__(self, nome, idade, sexo):
# Atributos de instância
self.nome = nome
self.idade = idade
self.sexo = sexo
# Incrementando o contador a cada pessoa criada
Pessoa.contador += 1
# Método de instância
def falar(self):
# Usando o atributo de instância nome
print(f”Olá, eu sou {self.nome} e sou da espécie {self.especie}.”)
# Método de classe
@classmethod
def contar(cls):
# Usando o atributo de classe contador
print(f”Existem {cls.contador} pessoas da espécie {cls.especie}.”)
Os métodos de classe são úteis para realizar operações que envolvem a classe como um todo, ou para criar objetos de forma alternativa.
Conclusão
Neste post, desvendamos alguns conceitos fundamentais da programação orientada a objetos: instanciação, construtores, atributos e métodos. Vimos como esses conceitos permitem criar programas mais modulares, reutilizáveis e fáceis de manter. Esperamos que este post tenha sido útil e esclarecedor para você. Se você gostou, compartilhe com seus amigos e deixe seu comentário abaixo. Até a próxima!
Se você quer saber mais sobre esse assunto, clique aqui e conheça agora os nossos cursos da FASPEC, ou matricule-se agora e descubra um mundo de oportunidades