Sie sind auf Seite 1von 24

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?

http://www.python.org/about/success/

(...)

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@das.ufsc.br

24 / 24

Das könnte Ihnen auch gefallen