Programação Orientada a Objeto em Python



Documentos relacionados
Python. Introdução à Programação SI1 - BSI

Técnicas de Programação II

Orientação a Objetos

Orientação a Objetos

Programação Orientada a Objeto

Orientação a Objetos com Java

Implementando uma Classe e Criando Objetos a partir dela

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Objetivos do mini curso. Conhecer a linguagem. Noção de programação utilizando Python. Aprender o báscio.

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Prof. Jhonatan Fernando

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Programação Orientada a Objetos em Java

Programação Orientada a Objetos

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Introdução às Linguagens de Programação

Análise e Projeto Orientados por Objetos

Introdução à Linguagem

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Introdução a POO. Introdução a Linguagem C++ e POO

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMATICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO LINGUAGENS DE APLICAÇÃO COMERCIAL SILAS QUEIROZ SILVA

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

JSP - ORIENTADO A OBJETOS

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Polimorfismo. Prof. Leonardo Barreto Campos 1

Allisson Barros 12/ Daniel Luz 13/ Leandro Bergmann 14/ Luiz Fernando Vieira 13/ Uriel Silva 12/

Estrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Python Intermediário. terça-feira, 4 de agosto de 15

PHP INTRODUÇÃO CLASSES E OBJETOS

Introdução a Java. Hélder Nunes

Profº. Enrique Pimentel Leite de Oliveira

Python Orientação a Objetos Parte 1. Introdução à Programação SI1

Java 2 Standard Edition Como criar classes e objetos

Linguagem de Programação Introdução a Linguagem Java

PHP AULA1. Prof. Msc. Hélio Esperidião

Noções sobre Objetos e Classes

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGEM ORIENTADA A OBJETOS

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Linguagem de Programação

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

AULA Uma linguagem de programação orientada a objetos

Tópicos em Engenharia de Computação

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

UM ESTUDO PARA A EVOLUÇÃO DO PHP COM A LINGUAGEM ORIENTADA A OBJETOS

Linguagens de Programação Aula 10

Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido

Aprendendo Python na Prática. Dante Moreira Zaupa Mestrando em Computação Aplicada Bolsista de Pesquisa

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

2 Orientação a objetos na prática

Reuso com Herança a e Composiçã

Prova Final de Linguagens de Programação - DCC024 -

1.1. Organização de um Sistema Computacional

CURSO DE PROGRAMAÇÃO EM JAVA

Conceitos Básicos da Linguagem C. Prof. Leonardo Barreto Campos 1

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Sobre o Professor Dr. Sylvio Barbon Junior

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Algoritmos e Programação II. Sobrecarga

Conceitos básicos da linguagem C

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Linguagens de programação

Programação Orientada a Objetos em Java. Herança

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version LibreOffice Productivity Suite

Herança. Alberto Costa Neto DComp - UFS

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

PROGRAMA DE DISCIPLINA

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Programação de Computadores I. Linguagem C Vetores

Engenharia de software para desenvolvimento com LabVIEW: Validação

Algoritmos e programação

Java. Marcio de Carvalho Victorino

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

DEFINIÇÃO DE MÉTODOS

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

EMENTA DO CURSO. Tópicos:

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

5 Apresentando a linguagem C

Python Aplicado às Redes de Comunicação

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Programação Orientada a Objetos C++

Programando em C# Orientado a Objetos. By: Maromo

PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof. Marcelo da Silveira Siedler siedler@gmail.com

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Transcrição:

Programação Orientada a Objeto em Python Seminário de LP III Por: ¹Adriana Nery Ramos, ¹Daniel Andersen Cerqueira Lima,¹Fabilone Santos da Silva, ¹Janaina C.C. G. Reis, ¹Jonisson S. Santos, ¹Roberta Idelfonso ¹Graduando em Ciência da Computação- Universidade Estadual de Santa Cruz- UESC

Tópicos Abordados: Histórico da Linguagem Python Vantagens da Utilização da Linguagem Classes em Python Encapsulamento Polimorfismo Herança Ex: aplicação direta da programação em Python

1.0- Histórico da Linguagem Python Criada em 1989 pelo holandês Guido Van Rossumno Instituto de Pesquisa Nacional para Matemática e Ciência da Computação (CWI), em Amsterdã, Holanda. Influenciada pela linguagem ABC, desenvolvida no CWI por Guido e outros nas décadas de 70 e 80. ABC tinha um foco bem definido: ser uma linguagem de programação para usuários inteligentes de computadores que não eram programadores: Físicos, Cientistas Sociais e até Linguistas. Também foi levado em consideração que o projeto do sistema operacional distribuído Amoeba precisava de uma linguagem de script. Com isso surge o Python, uma linguagem interpretada, bastante portável, orientada a objetos (incluindo herança múltipla). Apresenta semântica dinâmica, um moderno mecanismo de tratamento de erros e exceções. Python possui Uma forma eficiente de acesso e reutilização de código com o uso de módulos, coleta de lixo automática, recursos avançados de manipulação de textos, listas e outras estruturas de dados (como dicionários). Python possui ainda uma sintaxe simples e faz muito uso de indentação, o que é uma característica marcante da linguagem.

2.0- Vantagens da Utilização da Linguagem Qualidade do código: A sintaxe do Python facilita e encoraja a legibilidade do código, o que o torna mais fácil de manter e reutilizar; Produtividade: é mais rápido desenvolver um mesmo código em Python do que em outras linguagens como o C, C++ ou Java; Código compacto: requer menos linhas, e não necessita da declaração prévia do tipo das variáveis. Além disso, não requer um ciclo de compilação, podendo o programa ser executado imediatamente; Portabilidade: muitos programas Python correm sem qualquer alteração em várias plataformas como o Linux e o Windows; Possui uma vasta biblioteca padrão.. É uma das linguagens mais usadas por grandes empresas da área de TI.

3.0- Classes em Python Como nas outras linguagens de programação classes em Python são objetos. Mas em Python todos os tipos de dados são tratados como objetos. Dessa forma uma classe em Python permite que o mecanismo de herança realize múltiplas classes bases, uma classe derivada pode sobrescrever quaisquer métodos de uma classe ancestral, e um método pode invocar outro método homônimo de uma classe ancestral. Python também permite que objetos possam armazenar uma quantidade arbitrária de dados privados e que uma classe seja criada dentro de outra classe.

3.1- Sintaxe de Definição de uma Classe A forma mais simples de definição de uma classe pode ser descrita dessa maneira: >>> class NomeDaClasse: <comando-1>... <comando-n>

3.1- Sintaxe de Definição de uma Classe EX: >>> class ImprimiDados: #definindo a classe... def imprimi(self, inf ): #definindo método da classe... printinf... defimprimimedia(self, inf ): #definindo método da classe... if inf > 7:... print "Aprovado!"... elif inf < 7:... print "Reprovado!"... else:... print "Aprovado Pelo Conselho!" >>> x= ImprimiDados() #criando uma instância da classe >>> a= 8 #inicializando uma variável >>> x.imprimi(a) #executando um método da classe >>> x.imprimimedia(a) #executando um método da classe 8 #Saída Aprovado!

3.2- Construtores de uma Classe Quando uma Classe define um método init (), o processo de instanciação acontece automaticamente sobre a Classe. EX: >>> class ValoresInteiros: #definindo a classe... valor = int... def init (self): #definindo método construtor da classe sem valores... Self.valor = 0 #instanciando o atributo da classe ------------------------------------------------------------------------------------------------------------... def init (self, x): #definindo método construtor com argumentos... Self.valor = x #instanciando o atributo da classe... def imprimi(self): #instanciando o atributo da classe... print self.valor >>> x = ValoresInteiros() #criando uma instância da classe >>> a = ValoresInteiros( 2) #criando uma instância da classe >>> x.imprimi() #executando um método da classe >>> a.imprimi() #executando um método da classe 0 #Saída 2 #Saída

3.2- Construtores de uma Classe Além do método construtor init (), as classes podem ter os métodos add () e mul (). EX: >>> classvaloresinteiros: #definindo a classe... valor = int #atributo da classe... def init (self, x): #método construtor... self.valor = x #instanciando atributo... def add (self, parametros): #método add... returnvaloresinteiros(self.valor + parametros) #retorno de uma instância... def mul (self, parametros): #método mul... self.valor = self.valor * parametros #instanciando atributo... defimprimi(self): #método imprimi()... print self.valor >>> a = ValoresInteiros(3) #criando instâncias da classe com init >>> a.imprimi() #executando método imprimi() 3 #Saída >>> b = a + 7 #criando instâncias da classe com add >>> b.imprimi() #executando método imprimi() 10 #Saída >>> a*3 #instanciando atributos da classe com mul >>> a.imprimi() #executando método imprimi() 9 #Saída

3.3- Sobrecarga de operadores Esses mesmos métodos podem ser usados para realizar sobrecarga de operadores, ou seja: EX: >>> classvaloresinteiros: #definindo a classe... valor = int #atributo da classe... soma = int #atributo da classe... def init (self, x, y): #método construtor... self.valor = x #instanciando atributo... self.soma = y #instanciando atributo... def add (self, pr): #método add... returnvaloresinteiros(self.valor + pr.valor, self.soma + pr.soma)#ret. de uma instância... def mul (self, pr): #método mul... self.valor = self.valor * pr.valor * pr.soma #instanciando atributo... self.soma = self.valor * pr.valor - pr.soma #instanciando atributo

3.4- Métodos Estáticos Um método estático em Python é uma atribuição a classe que não precisa do primeiro argumento para ser instanciado na classe. EX: >>> classvaloresinteiros: #definindo a classe... valor = int #atributo da classe... def init (self, x): #método construtor... self.valor = x #instanciando atributo... def imprimi(self): #método imprimi()... print self.valor... @staticmethod #método estático... def main(*argumentos): #método main... c = ValoresInteiros( 7 ) #instanciando... c.imprimi() #executando método imprimi()... return 0 #final método estático >>> a = ValoresInteiros( 1 ) #criando instâncias da classe >>> a.main( teste ) #executando o método main 7 #Saída

4- Encapsulamento A proteção dos atributos ou métodos de uma classe em Python existem somente de duas formas o public e o private e eles são definidos no próprio nome do atributo ou método. Atributos ou métodos iniciados por no máximo dois sublinhados e terminados por um sublinhado são privados e todas as outras formas são públicas. EX: >>> classa:... a = 1 # atributo público... b = 2 # atributo privado a classe A >>> class B(A):... c = 3 # atributo privado a B... def init (self):... printself.a... printself. c >>> a = A() >>> printa.a # imprime 1 1 #saída >>> b = B() >>> printb. b # Erro, pois b é privado a classe A. >>> print b. c # Erro, c é um atributo privado, somente chamado pela classe. >>> print b._b c # Imprime c = 3, muito pouco utilizada, mas existe.

5- Polimorfismo O polimorfismo em Python é muito similar ao polimorfismo em Java, ou seja, eu posso implementar métodos em uma hierarquia de classes. EX: >>> class Corredor(Atleta):... def correr(self):... print("corredor correndo!")... def aquecer(self):... print("corredor aquecido!") >>> class Ciclista(Atleta):... def pedalar(self):... print("ciclista pedalando!")... def aquecer(self):... print("ciclista aquecido!") >>> class Nadador(Atleta):... def nadar(self):... print("nadador nadando!")... def aquecer(self):... print("nadador aquecido!")

6- Herança Uma nova classe em Python pode herdar métodos, atributos, etc. de outras classes, assim como implementar novos métodos e criar novos dentro de si mesma. Sendo assim os mecanismos de heranças podem ser: Herança simples: a classe herda somente uma outra classe Ex: >>> class Terrestre(object): #criando classe... moveterra = True #atributos da classe... inf = str... def init (self, objeto): #construtor... self.inf = objeto... def imprimiterrestre(self): #método... print self.inf... print Move em Terra: ", self.moveterra

6.1- Herança Simples Ex:... classcarro(terrestre): #nova classe herdeira... def init (self, objeto): #construto... super(carro, self). init (objeto) >>> a= Carro( Chevrolet ) #instanciando >>> a.imprimiterrestre() #executando método da classe Chevrolet #saída Move em Terra: True

6.2- Herança Múltipla Herança Múltipla: a classe herda mais de uma classe. Ex: >>> class Terrestre(object): #criando classe... moveterra = True #atributos da classe... inf = str... def init (self, objeto): #construtor... self.inf = objeto... def imprimiterrestre(self): #método... print self.inf... print Move em Terra: ", self.moveterra >>> class Aquatico(object): #criando outra classe... moveagua = True #atributos da classe... infa = str... def init (self, objeto): #construtor... self.infa = objeto... def imprimiaquatico(self): #método... print self.infa... print Move em Água: ", self.moveagua

6.2- Herança Múltipla Ex: >>> class Anfibio(Terrestre, Aquatico): #definindo classe herdeira... def int (self, objeto, objetoa): #método construtor... Terrestre. init (self, objeto) #método construtor da classe pai... Aquatico. init (self, objetoa) #método construtor da classe pai... defimprimi(self): #definindo novo método... Terrestre.imprimiTerrestre(self) #método da classe pai... Aquatico.imprimiAquatico(self) #método da classe pai >>> b = Anfibio( Chevrolet, Boat 230 Cabinada ) #nova instância da classe Anfibio >>> b.imprimi() #executando método da classe Chevrolet #saída Move em Terra: True Boat 230 Cabinada Move em Água: True

Obrigado!

Referências Bibliográficas: LUTZ, Mark. ASCHER, David. Learning Python. United States of America.O Reilly Network, 2003. KIUSALAAS, Jaan. Numerical Methods In Engineering With Python. New York. Cambridge University Press, 2005. ROSSUM, Guido Van. DRAKE JR., Fred L. Tutorial Python. Disponível em: <http://pythonbrasil.com.br>. Acesso em: 20/10/2010. LABAKI, Josué. Introdução a Python-Módulo A, grupo de Python-Universidade Estadual Paulista. Disponível em: <http://labaki.tk>. Acesso em: 20/10/2010. BORGES, L. E. Python para Desenvolvedores. Disponível em: <http://ark4n.files.wordpress.com/2009/05/python_para_desenvolvedores.pdf>. Sob licença Creative Commons. ROSSUM, G. v. Tutorial de Python. Release 2.1. Acesso em: 20/10/2010. SOUZA, Francisco A. S. Mini Curso de Python, Conceitos Básicos, Estruturas de Dados e Orientação a objetos. Disponível em: <http://www.slideshare.net/franciscosouza/minicurso-de-python>. Acesso em: 25/11/2010. Python. Disponível em: <http://pt.wikipedia.org/wiki/python>. Acesso em: 01/11/2010. Programação Orientada a Objeto. Disponível em: <http://www.python.org.br/wiki/programacaoorientadaobjetopython>. Acesso em: 01/11/2010. BARBIERI, Gustavo. Python. Disponível em: <http://www.gustavobarbieri.com.br/palestras/python-5hs/aula- 01.pdf>. Acesso em: 01/11/2010.