Programação Orientada a Objeto

Documentos relacionados
AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

Requisitos de sistemas

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Introdução ao Java. Prof. Herbert Rausch Fernandes

Programação I Aula 3 Primeiros programas

Introdução à Programação Aula 3 Primeiros programas

DIAGRAMAS DE CLASSE UML

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016

UML. Modelando um sistema

UML (Unified Modelling Language)

Análise de Sistemas 3º Bimestre (material 2)

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Análise de Sistemas. Aula 5

Programação Orientada a Objetos JAVA - NETBEANS

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Modelagem de Sistemas

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Como Modelar com UML 2

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

UML e seus diagramas

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Princípios de Análise e Projeto Orientados a Objetos com UML

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

Plano de Aula - Lógica de Programação - cód Horas/Aula

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

Introdução à UML. Prof. Jesus José de Oliveira Neto

Especificação de Sistemas de Software e a UML

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

O PARADIGMA ORIENTADO POR OBJETOS

Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Linguagem de Programação I Apresentação da Disciplina

Programação Orientada a Objetos

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Linguagens de Domínio Específico

Aula 03 Introdução à Programação com a Linguagem Python

27/02/2016 UML. Prof. Esp. Fabiano Taguchi DIAGRAMAS DE SEQUÊNCIA

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

Oficina de Python Prof. Me. José Carlos Perini

Introdução à Computação - aulas 01 e 02 -

Modelagem de Processos

Classes e Objetos. Sintaxe de classe em Java

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

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

Nome da classe. Atributos. Serviços / métodos

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

A Linguagem Python: Uma visão geral. Prof. Alberto Costa Neto Programação em Python

Análise e projeto de sistemas

Orientação a Objetos (OO)

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Organização de programas em Python. Vanessa Braganholo

Complexidade do Software

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Estruturas de Repetição

UML Unified Modeling Language Linguagem de Modelagem Unificada

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Conceitos de Programação Orientada a Objetos

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Programação Orientada a Objetos

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL

Algoritmos e Programação (While Do While - Do) Prof. Me. Adelson Felipe Dias Nogueira

Orientação a objetos. Objetos ou Instâncias I

Introdução a UML (Unified Modeling Language)

Unidade: sobrecarga, construtores e herança

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

Programação Orientada a Objetos

Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

TÉCNICO DE INFORMÁTICA - SISTEMAS

Engenharia de Software II e III - Introdução ao Diagrama de Classe

Transcrição:

Programação Orientada a Objeto Prof. Esp. Thiago S F Carvalho Faculdades Integradas de Diamantino 2016 Caravalho, T.S.F. (FID) POO 2016 1 / 44

Breve revisão Conteúdo 1 Breve revisão 2 Mais sobre classes 3 Especicação de Sistemas OO Unied Modeling Language Diagrama de Classes 4 Python O Básico Estruturas de controle Funções em Python Caravalho, T.S.F. (FID) POO 2016 2 / 44

Breve revisão Orientação a Objeto É uma forma de entender e representar sistemas complexos como estrutras hierárquicas de objetos que tem relação entre si. Caravalho, T.S.F. (FID) POO 2016 3 / 44

Breve revisão Classes Objetos similares (em estrutura de dados - atributos / comportamento - operações/métodos) Dizemos que o objeto é uma instância da classe Diferenciam-se: valor das propriedades e identicadores Caravalho, T.S.F. (FID) POO 2016 4 / 44

Breve revisão Encapsulamento Guardar ("esconder") na classe os detalhes da implementação através da restrição de acesso a atributos e métodos. Caravalho, T.S.F. (FID) POO 2016 5 / 44

Breve revisão Operações/Métodos O que é domínio daquela classe? Uma classe Produto: fornecer o valor do produto, a quantidade em estoque, calcular preço, desconto... Uma classe ContaCorrente: fornecer o saldo, o valor do limite, calcular juros, atualizar o saldo... Caravalho, T.S.F. (FID) POO 2016 6 / 44

Breve revisão Atributos Não possuem comportamento Nomes devem ser substantivos simples ou frase substantiva Devem ser únicos na classe Caravalho, T.S.F. (FID) POO 2016 7 / 44

Breve revisão Operações/Métodos O nome das operações deve indicar o seu resultado: calcularsaldo() obterquantidadeestoque() obternome() Atenção! Os nomes devem ser dados do ponto de vista do fornecedor. Caravalho, T.S.F. (FID) POO 2016 8 / 44

Mais sobre classes Conteúdo 1 Breve revisão 2 Mais sobre classes 3 Especicação de Sistemas OO Unied Modeling Language Diagrama de Classes 4 Python O Básico Estruturas de controle Funções em Python Caravalho, T.S.F. (FID) POO 2016 9 / 44

Mais sobre classes Abstração Um programa em linguagem OO é um conjunto de objetos dizendo uns para os outros o que fazer por meio do envio de mensagens. Cada objeto é a instância de uma classe Possui espaço de memória próprio A chamada de função pode ser usada para enviar mensagem a outro objeto Caravalho, T.S.F. (FID) POO 2016 10 / 44

Mais sobre classes Mais sobre Objetos Como instâncias de uma mesma classe, os objetos possuem coisas em comum: 1 Se tenho uma classe conta, os objetos dessa classe terão por exemplo, um número, uma data de abertura, um extrato,... 2 Porém, cada objeto criado tem um estado diferente: cada conta tem um número diferente, uma data de abetura diferente, um extrato diferente... Caravalho, T.S.F. (FID) POO 2016 11 / 44

Mais sobre classes Cada objeto pertence a uma classe, que dene o seu comportamento e sua características. Caravalho, T.S.F. (FID) POO 2016 12 / 44

Mais sobre classes Interface 1 Cada objeto possui métodos para alguma atividade 2 Cada objeto pode responder a determinadas requisições 3 O conjunto de métodos de um objeto é conhecido com interface. Caravalho, T.S.F. (FID) POO 2016 13 / 44

Mais sobre classes Inicializar : Construtor O construtor é um método especial denido na classe e que é chamado na instaciação desta (objeto), responsável por exemplo por: Inicializar atributos no momento Executar outros métodos/operações Caravalho, T.S.F. (FID) POO 2016 14 / 44

Especicação de Sistemas OO Conteúdo 1 Breve revisão 2 Mais sobre classes 3 Especicação de Sistemas OO Unied Modeling Language Diagrama de Classes 4 Python O Básico Estruturas de controle Funções em Python Caravalho, T.S.F. (FID) POO 2016 15 / 44

Especicação de Sistemas OO Especicação de Sistemas OO Nosso objetivo é conhecer a linguagem utilizada para modelar sistemas orientados a objeto. Iremos nos concentrar no Diagrama de Classes, artefato que pretendemos utilizar durante todo o curso. Caravalho, T.S.F. (FID) POO 2016 16 / 44

Especicação de Sistemas OO Unied Modeling Language UML UML é uma linguagem visual para especicação (modelagem) de sistemas orientados a objeto. A UML privilegia a descrição de um sistema seguindo três perspectivas: 1 Os diagramas de classes - (Dados estruturais); 2 Os diagramas de casos de uso (Operações funcionais); 3 Os diagramas de seqüência, atividades e transição de Estados (Eventos temporais). Caravalho, T.S.F. (FID) POO 2016 17 / 44

Especicação de Sistemas OO Unied Modeling Language Unicada A UML nos permite: 1 visualização 2 especicação 3 construção 4 documentação de softwares orientados a objeto. Caravalho, T.S.F. (FID) POO 2016 18 / 44

Especicação de Sistemas OO Unied Modeling Language Unicada Pense na UML como uma planta baixa (ou projeto arquitetônico): Caravalho, T.S.F. (FID) POO 2016 19 / 44

Especicação de Sistemas OO Unied Modeling Language Unicada Pense na UML como uma planta baixa (ou projeto arquitetônico): Caravalho, T.S.F. (FID) POO 2016 19 / 44

Especicação de Sistemas OO Unied Modeling Language Vantagens Algumas das vantagens da linguagem: 1 Padronizar a escrita e representação dos componentes e funcionamento do sistema 2 Permite visualiar a arquitetura do sistema 3 Demonstra claramente as funcionalidades 4 Permite mostrar a estrutura e comportamento esperado do sistema Caravalho, T.S.F. (FID) POO 2016 20 / 44

Especicação de Sistemas OO Diagrama de Classes Diagrama de Classes Porque utilizaremos o Diagrama de Classes: 1 Permite modelar as abstrações que fazem parte do sistema 2 Modela as interações entre os elementos 3 Modela a lógica dos dados manipulados pelo sistema Caravalho, T.S.F. (FID) POO 2016 21 / 44

Especicação de Sistemas OO Diagrama de Classes Notação para Classe Caravalho, T.S.F. (FID) POO 2016 22 / 44

Especicação de Sistemas OO Diagrama de Classes Notação para Classe Especicação do acesso: public + private - protected # Caravalho, T.S.F. (FID) POO 2016 23 / 44

Especicação de Sistemas OO Diagrama de Classes Relacionamentos Podem ser: 1 dependência 2 generalização 3 associação Caravalho, T.S.F. (FID) POO 2016 24 / 44

Especicação de Sistemas OO Diagrama de Classes Dependência Quando uma classe usa a outra, por exemplo. A alteração em uma classe afeta a outra. Caravalho, T.S.F. (FID) POO 2016 25 / 44

Especicação de Sistemas OO Diagrama de Classes Generalização Quando uma (sub)classe é uma especialidade de outra (superclasse). A alteração na superclasse é herdade por suas lhas. Caravalho, T.S.F. (FID) POO 2016 26 / 44

Especicação de Sistemas OO Diagrama de Classes Associação Indica que determinados objetos possuem uma ligação (estrutural). A associação é chamada de link. Caravalho, T.S.F. (FID) POO 2016 27 / 44

Especicação de Sistemas OO Diagrama de Classes Exercício Represente, utilizando UML, os seguintes objetos denindo atributos e métodos: 1 Tv 2 Pessoa 3 Cliente 4 Computador Caravalho, T.S.F. (FID) POO 2016 28 / 44

Python Conteúdo 1 Breve revisão 2 Mais sobre classes 3 Especicação de Sistemas OO Unied Modeling Language Diagrama de Classes 4 Python O Básico Estruturas de controle Funções em Python Caravalho, T.S.F. (FID) POO 2016 29 / 44

Python Python: Por que? Linguagem de alto nível Fácil para aprender Livre e funciona em qualquer S.O. Suporta programação procedural e programação OO Diversos recursos para aprendê-la de graça... Caravalho, T.S.F. (FID) POO 2016 30 / 44

Python Interpretar x Compilar Intepretador: o código é "traduzido"sempre o que o programa é executado Compilador: o código é "traduzido"uma única vez para linguagem de máquina Caravalho, T.S.F. (FID) POO 2016 31 / 44

Python Método híbrido Python utiliza um método híbrido para execução do código. Caravalho, T.S.F. (FID) POO 2016 32 / 44

Python O Básico Tipos de Dados Básicos Inteiro (int) 1 33 99 1000-1000000 Ponto Flutuante (oat) 1.02-0.299 Texto (str) "Oi, tudo bem?"'novidade' "1.99" Caravalho, T.S.F. (FID) POO 2016 33 / 44

Python O Básico Variáveis Símbolos que representaram na linguagem alguma quantidade ou propriedade Obrigatoriamente começam por letras, podendo conter números e sublinha Não podem ser palavras reservadas da linguagem (gerará um erro) Podem ter acentos (embora não aconselhável) Não podem ter espaços ou tabulações Alguns nomes válidos: minhanota, meucarro2, var 1, var 2, var _3(...) Caravalho, T.S.F. (FID) POO 2016 34 / 44

Python O Básico Atribuir valor Utilize o símbolo ( = ): var1 = 1.2 Você poderá então usar essa variável em calculos por exemplo... var1 = 1.2 var1 * 2 2.4 Caravalho, T.S.F. (FID) POO 2016 35 / 44

Python O Básico Exercício Um simples exercício em python: Execute os comandos abaixo e verique o que acontece com o valor das variáveis. t = 3 h = 2 t = h*t h = h+t Veja a cada passo quais valores as variáveis recebem, e, seu valor nal. Caravalho, T.S.F. (FID) POO 2016 36 / 44

Python O Básico Entrada e saída Você precisa aprender algumas instruções úteis. Para imprimir o conteúdo de uma variável ou uma cadeia de texto, utilize a instrução: print() Para ler algo que o usuário irá informar, utilize: input() Caravalho, T.S.F. (FID) POO 2016 37 / 44

Python O Básico Um programa completo Vamos ao nosso primeiro programa completo: # Nosso primeiro programa var_numero = input("escolha um número: ") print("o número que você escolheu foi: " + var_numero) Experimente no IDLE. Caravalho, T.S.F. (FID) POO 2016 38 / 44

Python Estruturas de controle Laço for for variavel in lista de valores: instrucao1 instrucao2 Exemplo: for x in [1,2,3,4,5] print(x) Caravalho, T.S.F. (FID) POO 2016 39 / 44

Python Estruturas de controle Condicional if condicao: instrucao1 else: instrucao2 Exemplo: if 1 = 1: print("verdade") else: print("sujou!") Caravalho, T.S.F. (FID) POO 2016 40 / 44

Python Estruturas de controle Condicional if condicao1: instrucao1 elif condicao2: instrucao2 elif condicao3: instrucao3 Exemplo: if x == y: print("iguais") elif x>y: print("x é maior") elif x<y: print("y é maior") Caravalho, T.S.F. (FID) POO 2016 41 / 44

Python Estruturas de controle Loop condicional while condicao: instrucao1 instrucao2 Exemplo: x = 1 while x!= 7: print(x) x = x+1 Caravalho, T.S.F. (FID) POO 2016 42 / 44

Python Funções em Python Por que escrever funções? Por que usar funções? Evitar repetição de código Modularizar o programa - redução do problema em partes lembre-se que os objetos podem conter atributos e métodos (funções) Caravalho, T.S.F. (FID) POO 2016 43 / 44

Python Funções em Python Estrutura def nomefuncao (parametros) : instrucao 1 instrucao 2 instrucao final veja que não há pontuação você poderá ou não ter argumentos a serem passados para a função a identação do código é que diz onde começa e termina a função Caravalho, T.S.F. (FID) POO 2016 44 / 44