Buscar

slides3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

1
Prof. Wellington Rodrigo Monteiro
Linguagem de Programação
Aula 3
Conversa Inicial
Transpondo conceitos
da vida real em código
Programação Orientada
a Objetos (POO)
Mudando paradigmas
Um problema para ser resolvido pela 
Programação Orientada a Objetos
Método até agora:
programação estruturada
Receita de bolo
Funções
Estruturas de seleção
Estruturas de repetição
Entrada e saída de dados
Programação estruturada
Segurança
Confiança
Sistemas corporativos
Internet Banking
E-commerce
Sistemas contábeis
Sistemas corporativos (ERPs)
Programação Orientada a Objetos
2
Noções de Programação
Orientada a Objetos Unified Modeling Language (UML)
Programação Orientada a Objetos (POO)
Structured Query Language (SQL)
Programação Orientada a Objetos
"Coisas" da vida real
Dois objetos não ocupam o
mesmo lugar ao mesmo tempo
Estados
Características
Objetos
Estados
Variáveis: atributos
Comportamentos
Ações: funções (métodos)
Objetos
"Manual" (blueprint) para se criarem objetos
Receita de bolo, não o bolo
Planta da casa, não a casa
Instância de classe: objeto
Classes
Classe "Cachorro"
Métodos
Latir
Comer
Dormir
Exemplo
Atributos
Cor
Nome
Brinquedo favorito
3
Objeto "Kora":
instância de "Cachorro"
Objeto "Pippoca":
instância de "Cachorro"
Objeto "Dexter":
instância de "Cachorro"
Herança de classes
Classes especializadas
Herdam métodos e atributos
Heranças
Carro
Caminhonete
Furgão
Minivan
Heranças
Bicicleta
BMX
Bicicleta de Carga
Bicicleta de Pista
Residência
Sobrado
Casa de Praia
Apartamento
Heranças
Cliente de
Internet Banking
Conta simples
Conta premium
Conta empresarial
Classe "Cachorro"
Métodos
Latir
Comer
Dormir
Atributos
Cor
Nome
Brinquedo favorito
Exemplo
Classe "Cão Farejador"
Métodos
Farejar
Sentar
Atributos
Tempo de
Treinamento
Aeroporto
Raça
Classes podem usar interfaces
Interfaces listam os métodos
que uma classe que a usa deve ter
Interfaces não implementam métodos
Interfaces
4
Classes e Objetos em Python class [nome da classe]
Atributos
Métodos
self
Criando uma classe
class Bolo:
peso = 0
def atribuir_peso(self, peso_a_atribuir):
self.peso = peso_a_atribuir
bolo_aniversario = Bolo()
print(bolo_aniversario.peso)
bolo_aniversario.atribuir_peso(2)
print(bolo_aniversario.peso)
Exemplo
def __init__
Inicializando uma classe
class Bolo:
peso = 0
def __init__(self, peso_inicial=0):
self.peso = peso_inicial
def atribuir_peso(self, peso_a_atribuir):
self.peso = peso_a_atribuir
bolo_aniversario = Bolo()
print(bolo_aniversario.peso)
bolo_aniversario.atribuir_peso(2)
print(bolo_aniversario.peso)
Exemplo
Polimorfismo
5
Implementações diferentes 
do mesmo método
Parâmetros diferentes
Resultados diferentes
Polimorfismo
Veículo: estacionar
Carro: estacionar
Moto: estacionar
Caminhão: estacionar
Bicicleta: estacionar
Polimorfismo
Closures e Decorators Funções dentro de funções
Redução de casos de variáveis globais
Encapsulamento e isolamento da lógica
Encapsulamento
Funções que:
Ficam dentro de outras funções e
Usam variáveis atribuídas a elas
Closures
def calcular_volume_area_base(area_base):
constante = 3
def calcular_volume_piramide(altura):
return (area_base * altura)/constante
return calcular_volume_piramide
Closures
Função interna
6
def calcular_volume_area_base(area_base):
constante = 3
def calcular_volume_piramide(altura):
return (area_base * altura)/constante
return calcular_volume_piramide
# closure
piramide = calcular_volume_area_base(15) # area base
piramide(2) # altura
Closures
Closures que podem ser inseridas no 
código sem alterações estruturais
Uso do "@"
@staticmethod
@classmethod
Decorator
class Bolo:
peso = 0
def __init__(self, peso_inicial=0):
self.peso = peso_inicial
def atribuir_peso(self, peso_a_atribuir):
self.peso = peso_a_atribuir
@staticmethod
def calcular_porcoes_por_ovo(numero_ovos):
return round(numero_ovos * 3)
Decorators

Continue navegando