Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Paradigmas de Linguagens de 
Programação em Python
Prof. Julio Cartier Maia Gomes
Python orientado a objeto
Imagine que você foi contratado para desenvolver o 
sistema de um banco digital. Esse sistema precisa 
gerenciar contas bancárias, realizar depósitos, e 
saques. 
● Como você organizaria isso em código?
3
Revisando
Um paradigma é um conjunto de regras que 
estabelecem fronteiras e descrevem como resolver 
problemas dentro desta fronteira.
4
O paradigma de Orientação a 
Objetos pode ser encarado 
como uma forma de pensar o 
seu projeto, desde a arquitetura 
até a implementação.
Programação orientada a objetos (POO)
A programação orientada a objetos (POO) é um dos 
paradigmas mais utilizados atualmente no 
desenvolvimento de sistemas
Permitem construir programas baseados em 
objetos que representam o mundo real, por meio de 
características, estados e comportamentos.
5
Abstração
Modelar elementos do mundo real de forma 
simplificada. 
6
Classe
Atributos
Métodos
7
Objetos
Corpo de uma Classe
● O corpo de uma classe pode conter:
● Atributos;
● Métodos;
8
Classes
● Servem como modelo ou categoria para um 
determinado conjunto de objetos:
9
Objetos
10
É a representação computacional de um 
elemento ou processo do mundo real. 
Classes e Objetos
11
Atributos
● Caracteriza as propriedades dos objetos da 
classe:
12
Atributos
13
Métodos
■ Comportamento da classe por meio de 
operações que ela pode executar, ou seja, 
compreende as funcionalidades da classe;
14
Construtor
● Construtor da Classe;
● Inicialização de um objeto da classe;
● O construtor de uma classe é um método 
especial com as seguintes características:
● É o primeiro método executado por um objeto
● É obrigatório uma classe conter ao menos um 
construtor. 
15
Imagine que você foi contratado para desenvolver o 
sistema de um banco digital. Esse sistema precisa 
gerenciar contas bancárias, realizar depósitos, e 
saques. 
● Como você organizaria isso em código?
16
Padrão de resposta esperado
17
CONTA1
agencia = “3133-1”
conta = “21312-0 Atributos
CONTA2
agencia = “2132-1”
conta = “91212-0
Classe
Métodos
Instâncias
C++
Java
PHP
Python
Ruby
18
Construção de classe com auxílio da 
linguagem de programação
Questão 1
A programação orientada a objetos (OO) é um paradigma que organiza o código a partir de alguns 
pilares básicos: objetos, atributos (dados) e métodos (operações), que definem seu estado e 
comportamento. Em programação orientada a objetos (OO), qual das seguintes afirmações é 
verdadeira sobre objetos, atributos e operações?
a Um objeto é uma definição de classe que especifica atributos e métodos.
b Atributos são funções que definem o comportamento de um objeto.
c Operações, ou métodos, são os dados armazenados em um objeto.
d Um objeto é uma instância de uma classe, contendo atributos e métodos.
e Atributos e métodos são sinônimos em programação orientada a objetos.
19
A programação orientada a objetos (OO) é um paradigma que organiza o código a partir de alguns 
pilares básicos: objetos, atributos (dados) e métodos (operações), que definem seu estado e 
comportamento. Em programação orientada a objetos (OO), qual das seguintes afirmações é 
verdadeira sobre objetos, atributos e operações?
a Um objeto é uma definição de classe que especifica atributos e métodos.
b Atributos são funções que definem o comportamento de um objeto.
c Operações, ou métodos, são os dados armazenados em um objeto.
d Um objeto é uma instância de uma classe, contendo atributos e métodos.
e Atributos e métodos são sinônimos em programação orientada a objetos.
20
Questão 1
Questão 2
Uma classe é um componente central na programação orientada a objetos (OO). Avalie sua 
compreensão desse conceito fundamental respondendo à questão a seguir.
Qual das seguintes afirmações é verdadeira sobre classes na programação orientada a objetos?
a Uma classe é uma instância de um objeto que contém atributos e métodos.
b Classes não podem conter métodos, apenas atributos.
c Uma classe define atributos e métodos, servindo como um molde para criar objetos.
d A classe é usada apenas para agrupar funções sem nenhum dado associado.
e Objetos e classes são exatamente a mesma coisa em programação orientada a objetos.
21
Questão 2
Uma classe é um componente central na programação orientada a objetos (OO).
Avalie sua compreensão desse conceito fundamental respondendo à questão a seguir.
Qual das seguintes afirmações é verdadeira sobre classes na programação orientada a objetos?
a Uma classe é uma instância de um objeto que contém atributos e métodos.
b Classes não podem conter métodos, apenas atributos.
c Uma classe define atributos e métodos, servindo como um molde para criar objetos.
d A classe é usada apenas para agrupar funções sem nenhum dado associado.
e Objetos e classes são exatamente a mesma coisa em programação orientada a objetos.
22
SEM POO
23
COM POO
24
Pontos Chaves
25
Referências
BEZERRA, E. Princípios de análise e projeto de sistemas com UML. 3. ed. 
Rio de Janeiro, Campus, 2015.
BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML : guia do 
usuario. Tradução de Fabio Freitas. 2. ed. revista e atualizada Rio de 
Janeiro: Campus: Elsevier, 2006. ISBN 85-352-0562-4. 
FOWLER, Martin. UML essencial: um breve guia para linguagem-padrão 
de modelagem de objetos. 3. ed. Porto Alegre: Bookman, 2011. 1 recurso 
online. ISBN 9788560031382. Acesso em: 11 jun. 2025. 
26
Referências
HORSTMANN, C. Conceitos de computação com o essencial de C++. 3. 
ed. Porto Alegre: Bookman, 2005.
SANTOS, Marcela Gonçalves dos. Linguagem de programação 
[recurso eletrônico] / Marcela Gonçalves dos Santos; revisão técnica: 
Jeferson Faleiro Leon. – Porto Alegre: SAGAH, 2018.
27
Conceitos e pilares de programação orientada a objetos
Conceitos de programação orientada a objetos (POO)
A Programação Orientada a Objetos (POO) revolucionou a estruturação de 
programas de computador.
Ela se baseia em pensar abstratamente problemas do mundo real usando 
conceitos reais em vez de ideias puramente computacionais.
A abordagem baseada em objetos permite que os mesmos conceitos e 
notações sejam usados desde a análise até a implementação de um 
projeto de software.
O software na POO é organizado como uma coleção de objetos que 
incorporam tanto a estrutura quanto o comportamento dos dados.
Conceitos e pilares de programação orientada a objetos
Pilares da orientação a objetos
Objetos
Um objeto na programação 
orientada a objetos é a 
representação computacional de um 
elemento ou processo do mundo 
real.
Cada objeto possui características 
(informações) e operações 
(comportamento) que podem alterar 
suas características (estado).
Os objetos no mundo real e na 
programação são variados, como 
Aluno, Professor, Livro, Empréstimo, 
e assim por diante.
Na análise de objetos, é importante 
focar apenas nos objetos relevantes 
e suas características essenciais para 
resolver o problema em questão.
Conceitos e pilares de programação orientada a objetos
Pilares da orientação a objetos
Atributos
São propriedades do mundo real que descrevem um objeto. Cada objeto possui as respectivas 
propriedades desse mundo, as quais, por sua vez, possuem valores. 
Nome - Maria
Idade - 35
Peso - 63kg
Altura - 1,70m
Conceitos e pilares de programação orientada a objetos
Pilares da orientação a objetos
Operações
Operações são funções que podem 
ser aplicadas a objetos ou seus 
dados.
Cada objeto tem um conjunto de 
operações definidas em sua 
interface.
Objetos colaboram entre si por meio 
de suas interfaces, permitindo que 
operações sejam realizadas.
Desenvolver sistemas orientados a 
objetos envolve identificar objetos, 
seus atributos e operações, e 
mapear isso para resolver 
problemas.
Conceitos e pilares de programação orientada a objetos
O conceito de classe
▪ Uma classe descreve as características e o 
comportamento de um conjunto deobjetos.
▪ Objetos são instâncias de uma classe.
▪ As classes são os blocos básicos para a construção de 
programas orientados a objetos.
▪ Os objetos colaboram entre si, enviando mensagens e 
chamando operações para resolver problemas 
computacionais.
Colaboração entre motorista e 
carro.
O conceito de encapsulamento
O encapsulamento separa os 
aspectos externos de um objeto de 
seus detalhes internos de 
implementação.
Isso permite que a interface de 
comunicação de um objeto revele o 
mínimo possível sobre seu 
funcionamento interno.
Os objetos clientes só precisam 
conhecer as operações disponíveis, 
sem necessidade de entender a 
implementação.
O encapsulamento facilita a 
manutenção e evolução do sistema, 
isolando alterações internas dos 
objetos.
Os mecanismos de herança e polimorfismo
Herança
A herança é um 
mecanismo na 
programação 
orientada a objetos 
onde as classes 
compartilham 
atributos e 
comportamentos.
Permite criar 
hierarquias de 
classes, com classes 
"filhas" herdando 
características de 
classes "pais".
Classes "filhas" 
podem reutilizar e 
especializar 
comportamentos da 
classe "pai".
Facilita a evolução 
de sistemas, 
permitindo a adição 
de novas classes à 
hierarquia.
Os mecanismos de herança e polimorfismo
Polimorfismo
Polimorfismo é a capacidade de 
comportamentos diferentes em 
classes diferentes.
Permite que uma mesma mensagem 
seja executada de maneira diversa, 
dependendo do objeto receptor.
Isso ocorre ao reimplementar um 
método nas subclasses de uma 
herança.
Exemplo: o método "mover()" pode 
ter diferentes implementações em 
classes distintas.
Os mecanismos de herança e polimorfismo
Polimorfismo
mover() – método polimórfico.
Classes e objetos
Definição de classe
Uma classe é uma declaração de tipo 
que encapsula variáveis, constantes 
e métodos.
Cada classe deve ser única em um 
sistema orientado a objetos.
É boa prática manter uma classe em 
um arquivo .py com um nome 
correspondente, como "Conta.py".
As classes são definidas com a 
palavra-chave "class" seguida de ":".
Classes e objetos
Construtores e self
Em Python, o construtor de uma classe é definido pelo método __init__().
O construtor é usado para inicializar os atributos da classe quando um objeto é 
instanciado.
O construtor tem um parâmetro chamado self, que é uma referência ao próprio 
objeto sendo criado.
A palavra-chave self é usada para se referir aos atributos do objeto dentro do 
construtor.
Classes e objetos
Métodos
As classes em Python possuem métodos que permitem manipular os atributos da 
classe.
Os métodos são funções definidas dentro da classe e operam no objeto instanciado.
Os métodos podem receber o parâmetro self, que é uma referência ao próprio 
objeto.
O self é usado para acessar e modificar os atributos do objeto dentro dos métodos.
Classes e objetos
Métodos com retorno
▪ Métodos em Python podem retornar valores.
▪ A palavra-chave return é usada para especificar o valor de retorno.
▪ O valor de retorno fornece informações de volta ao chamador do 
método.
▪ No exemplo, o método sacar retorna False se o saque for maior que 
o saldo disponível.
Classes e objetos
Referências entre objetos na memória
Instâncias de uma classe 
representam objetos distintos, com 
referências separadas na memória.
Referências diferentes para objetos 
permitem operações independentes 
e não afetam uns aos outros.
Para interações entre objetos, é 
possível passar referências de um 
objeto como parâmetros para 
métodos.
Esse conceito de referências entre 
objetos é fundamental para a 
programação orientada a objetos, 
permitindo comunicação controlada.
Tipos de associação entre objetos
Agregação
A agregação é um relacionamento 
"todo-parte" entre classes.
Ela indica que uma classe contém ou 
é composta por instâncias de outra 
classe.
Os objetos contidos podem existir 
independentemente da classe que os 
contém.
É representada visualmente por um 
losango e modela relações 
complexas, como uma conta 
corrente com vários clientes.
Tipos de associação entre objetos
Composição
▪ Composição é um relacionamento "todo-parte" entre 
classes, onde uma classe contém uma ou mais 
instâncias de outra classe.
▪ Na composição, os objetos contidos só podem existir 
como parte do objeto que os contém.
▪ A classe Conta agora é composta por vários objetos 
Extrato, permitindo que ela armazene transações 
realizadas e gere extratos.
▪ As transações realizadas são adicionadas como linhas 
ao objeto Extrato, que é referenciado pela classe 
Conta.
Classe Conta composta de 1 ou mais 
extratos.
Integridade dos objetos: encapsulamento
Encapsulamento
Encapsulamento: Protege a 
integridade dos objetos, evitando 
alterações indevidas nos atributos.
Reunião de dados e funções: A 
orientação a objetos reúne dados e 
métodos em uma única entidade.
Exemplo de encapsulamento: 
Impede alterações diretas nos 
atributos que violam as regras de 
negócio.
Método sacar: Não permite que o 
saldo fique negativo, mantendo o 
estado válido do sistema.
Integridade dos objetos: encapsulamento
Atributos públicos e privados
Atributos privados: 
Em Python, são 
definidos iniciando 
com dois 
underscores (ex: 
__atributo).
Acesso: O 
interpretador 
renomeia o atributo 
privado para 
_nomedaClasse__no
medoatributo.
Prática não 
recomendada: 
Embora seja possível 
acessar atributos 
privados, isso viola o 
encapsulamento da 
orientação a 
objetos.
Boas práticas: A 
disciplina deve ser 
mantida para não 
acessar diretamente 
atributos com __ ou 
_ definidos nas 
classes.
Integridade dos objetos: encapsulamento
Decorator @property
Decorator @property: Utilizado para 
criar propriedades em métodos, 
permitindo o acesso controlado a 
atributos privados.
Método @.setter: 
Usado para controlar alterações de 
valores dos atributos privados, 
garantindo o encapsulamento.
Boa prática: Definir métodos 
property e setter somente quando 
há regras de negócio associadas ao 
atributo.
Propriedades em Python: 
Contribuem para manter a 
integridade dos objetos e aplicar o 
princípio de encapsulamento.
Integridade dos objetos: encapsulamento
Atributos de classe
Atributos de Classe: São usados para controlar valores associados à classe, não às 
instâncias.
Exemplo: Ao criar uma classe "Círculo," podemos adicionar um atributo de classe 
"total_circulos" para contar o número de círculos criados.
Declaração: A variável de classe é criada na classe e pode ser atualizada para rastrear 
informações compartilhadas entre todas as instâncias da classe.
Privacidade: É uma boa prática tornar o atributo de classe privado usando um 
underscore (ex: _total_circulos) para evitar acesso direto.
Integridade dos objetos: encapsulamento
Métodos de classe
Métodos de Classe: São usados para 
acessar os atributos de classe e têm 
acesso direto à área de memória que 
contém esses atributos.
Decorator @classmethod: Utilizado 
para definir um método como 
estático, permitindo o acesso aos 
atributos de classe.
Exemplo: Na classe "Círculo," o 
método @classmethod permite 
acessar o atributo de classe 
_total_circulos.
Parâmetro cls: É criado como uma 
referência para a classe e é usado 
dentro do método de classe para 
acessar os atributos da classe.
Integridade dos objetos: encapsulamento
Métodos públicos e privados
▪ Métodos públicos e privados seguem as mesmas regras dos 
atributos.
▪ Métodos privados são marcados com dois underscores antes do 
nome (ex: __metodo_privado).
▪ Embora métodos privados possam ser chamados diretamente, a boa 
prática é usá-los apenas internamente para manter o 
encapsulamento.
Integridade dos objetos: encapsulamento
Métodos estáticos
Métodos Estáticos: São métodos que podem ser chamados sem a necessidade de criar uma 
instância da classe.
Exemplo: O método sqrt da classe Math pode ser chamado diretamente, sem instanciar um 
objeto da classe.
Boa Prática: Em programação orientada a objetos, métodos estáticosnão são 
recomendados e devem ser usados apenas em casos especiais, como em classes de log em 
sistemas.
Herança e polimorfismo
▪ Herança: Permite que uma classe filho herde métodos e 
atributos da classe pai, reduzindo repetições de código.
▪ Polimorfismo: Permite que objetos tenham 
comportamentos específicos em situações diferentes.
▪ Tratamento de Exceções: Facilita a manipulação de erros 
durante a execução do código, tornando-o mais robusto e 
controlado.
Implementando herança
▪ Herança em POO: Facilita a reutilização de código e a 
extensão para atender a diferentes regras de negócio.
▪ Exemplo de Conta Especial: Uma classe ContaEspecial 
herda da classe Conta, permitindo saques com limite.
▪ Vantagens: Redução de duplicação de código e 
manutenção mais simples.
▪ Código Demonstrado: A implementação mostra a 
criação e operação de objetos ContaEspecial derivados 
de Conta.
Herança Conta -> 
ContaEspecial.
Herança múltipla
Herança Múltipla: Permite que uma 
classe herde o código de duas ou 
mais superclasses, combinando suas 
funcionalidades.
Exemplo: No sistema bancário, é 
criada uma classe 
ContaRemuneradaPoupanca que 
herda funcionalidades de Conta e 
Poupanca.
Nova Funcionalidade: A classe 
ContaRemuneradaPoupanca tem um 
rendimento diário baseado na 
poupança e cobra uma taxa de 
manutenção mensal.
Implementação: O código demonstra 
a criação de objetos e operações em 
classes derivadas de várias 
superclasses.
Herança múltipla
Herança múltipla.
Implementando polimorfismo
Polimorfismo: 
Permite métodos 
com o mesmo 
nome se 
comportarem de 
maneira diferente 
conforme o objeto 
que os chama.
Exemplo Bancário: 
Classes 
ContaCliente, 
ContaComum e 
ContaRenumerada 
possuem regras 
específicas para 
calcular 
rendimento.
Uso de Herança: 
Todas as classes 
são do tipo 
ContaCliente, 
permitindo que o 
Banco adicione 
contas de tipos 
diferentes.
Benefícios: 
Polimorfismo 
simplifica o código, 
evita verificações 
de tipos e torna a 
chamada de 
métodos 
transparente em 
sistemas com 
muitas subclasses.
Classes abstratas
Classes Abstratas: Não podem ser 
instanciadas e servem como 
modelos para subclasses concretas.
Herança e Abstração: Utiliza-se o 
módulo abc em Python para criar 
classes abstratas herdando da classe 
ABC.
Método Abstrato: Uma classe 
abstrata deve conter pelo menos um 
método abstrato, indicado com 
@abstractmethod.
Subclasses Concretas: Subclasses 
como ContaComum e ContaVIP 
devem fornecer a implementação 
concreta do método abstrato da 
superclasse ContaCliente.
Classes abstratas
Diagrama de classes abstratas.
Tratamento de exceções
▪ Tratamento de Exceções em Python: Permite criar 
exceções personalizadas herdando de Exception.
▪ Exemplo: O código define a exceção 
ExcecaoCustomizada e a captura usando 
try...except.
▪ Herança de Exceções: É uma prática comum 
herdar exceções da classe Exception para 
distinguir erros da aplicação dos erros padrão da 
linguagem.

Mais conteúdos dessa disciplina