Python: Programacao Orientada a Objetos
Thiago Lima Silva
Universidade Federal de Santa Catarina
Departamento de Automac
ao e Sistemas
Santa Catarina, Brasil
1 de julho de 2011
1 / 24
Introduc
ao
Sumario
Introducao
Programacao Orientada a Objetos
A linguagem Python
POO em Python
2 / 24
Introduc
ao
Introducao
Orientacao a Objetos (OO) e uma forma conceitual de se estruturar
um programa
A modelagem de sistemas com o uso de orientacao a objetos visa:
Diminuir a diferenca semantica entre a realidade e o modelo
Reutilizar c
odigo
Facilitar manutencao
3 / 24
Introduc
ao
Introducao
Objeto e uma entidade que possui:
Identidade
Estado
Comportamento
Exemplo: Conta de Banco
N
umero
Saldo
Sacar, depositar
4 / 24
Introduc
ao
Figura: Objetos no Mundo Real
5 / 24
Programac
ao Orientada a Objetos
Sumario
Introducao
Programacao Orientada a Objetos
A linguagem Python
POO em Python
6 / 24
Programac
ao Orientada a Objetos
A Programacao Programac
ao Orientada a Objetos (POO) tem como
estrutura basica os objetos que se comunicam e coordenam as suas
acoes
Conceitos Basicos:
o tipo de um Objeto
Classes: E
Atributos: Caracterizam o estado de um Objeto
Metodos: Comportamento do objeto (troca de mensagens)
Objetos: Instancias das Classes
7 / 24
Programac
ao Orientada a Objetos
Programacao Procedural x POO
(a) Programac
ao Procedural
(b) Programac
ao Orientada a Objetos
8 / 24
Programac
ao Orientada a Objetos
Conceitos Fundamentais
Encapsulamento (visibilidade):
privados: acesso apenas de dentro da classe
protegidos: acessado de dentro da classe os das subclasses (nao
existem em python)
p
ublicos: acessados de qualquer classe
Agregacao: Quando uma classe faz parte de outra classe
Heranca: subclasse herda atributos e metodos de uma classe. Pode-se
adicionar novos atributos e metodos `
a subclasse.
9 / 24
Programac
ao Orientada a Objetos
Conceitos Fundamentais
Polimorfismo: Sobrecarga de Metodos e Operadores (Python nao
permite mais de um metodo com o mesmo nome no mesmo
namespace)
Coordenacao e Mensagens: Quando um objeto invoca um metodo de
outro objeto
10 / 24
Programac
ao Orientada a Objetos
Benefcios da Programacao Orientada a Objetos (POO)
Modularidade
Produtividade
Aumentar a Reutilizacao de Codigo
Facilitar a Agregacao de m
odulos
Manutencao mais facil
Adicao de novas funcionalidades se torna mais simples
11 / 24
Programac
ao Orientada a Objetos
Desvantagens da POO
Curva de Aprendizado maior
O desempenho, geralmente, e pior
12 / 24
A linguagem Python
Sumario
Introducao
Programacao Orientada a Objetos
A linguagem Python
POO em Python
13 / 24
A linguagem Python
Python
Desenvolvida em 1991 por Guido Van Rossun
Python e uma linguagem de programac
ao feita em C, relativamente
simples, que possui um grande conjunto de bibliotecas de suporte
Linguagem de Alto Nvel
Software Livre (Python Software Foundation)
Sintaxe simples que contribui para a boa legibilidade e facil escrita
14 / 24
A linguagem Python
Suporta m
ultiplos paradigmas:
Programacao Procedural
Programac
ao Orientada a Objetos
Programacao Funcional
Case sensitive (nome != Nome)
Interpretada
Tipagem Dinamica e Forte
Multiplataforma:
Linux, Osx, Windows, Solaris, etc..
15 / 24
A linguagem Python
Por que usar Python?
Facil Aprendizado
Boa documentacao
Software Livre
Suporte a desenvolvimento WEB, Celulares, ..
Conjunto enorme de bibliotecas padr
ao
Multiplataforma
16 / 24
A linguagem Python
Quem usa Python?
[Link]
(...)
17 / 24
A linguagem Python
A Linguagem
Hello World: print Hello World
N
umeros
Inteiros: 4, 8, 15
Ponto Flutuante: 4.23, 42.8E-4
N
umeros Complexos: -5+4j, 2.3-4.6j
Strings: Hello World, Hello World
String:format(): print Eu estou em {0}.format(Estado)
Variaveis:
O primeiro caractere precisa ser uma letra ou um , as demais podem
ser qualquer smbolo ASCII
Python e case-sensitive (name != NaMe)
18 / 24
A linguagem Python
Indentacao: Python usa espacos em branco para determinar os blocos
de codigo
Controle de fluxo: if, elif, else, while, for
Estruturas de Dados:
Listas: [1,2, a]
Tuplas(conjuntos fixos): (1, 2 ,3, Hello)
Dicionarios(hash): {42: The answer, key: value}
Conjuntos: ([list, of, values])
Funcoes: def nameOfFunction
19 / 24
POO em Python
Sumario
Introducao
Programacao Orientada a Objetos
A linguagem Python
POO em Python
20 / 24
POO em Python
POO em Python
Em Python, tudo pode ser entendido como objeto
Ha suporte para heranca m
ultipla, polimorfismo, agregacao,
sobrecarga de operadores, etc
Ha apenas atributos privados e p
ublicos (incorporado na linguagem)
Ha como se definir atributos est
aticos (que pertencem `a classe)
[Cuidado com atributos mut
aveis: listas e dicion
arios]
Introspeccao e Reflex
ao: h
a como se verificar a classe, o m
odulo e
outras informacoes de um objeto
21 / 24
POO em Python
Classes, Metodos e Atributos
Figura: Classe, metodos e atributos
22 / 24
POO em Python
Heranca, Polimorfismo e Agregacao
Figura: Heranca, Polimorfismo e Agregacao
23 / 24
POO em Python
Obrigado
Obrigado pela atenc
ao!
Thiago Lima
thiagolima@[Link]
24 / 24