Programação Orientada a Objeto

Documentos relacionados
Programação Orientada a Objeto

O PARADIGMA ORIENTADO POR OBJETOS

Programação Orientada a Objetos JAVA - NETBEANS

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

LINGUAGEM DE PROGRAMAÇÃO

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

Programação I Curso: Sistemas de Informação. Prof.: José Ronaldo Leles Júnior .:

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

Linguagem de Programação. Diagrama de classes

Requisitos de sistemas

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

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

Conceitos de Programação Orientada a Objetos

Programação Orientada a Objeto (POO)

Programação Orientada a Objetos

E N C A P S U L A M E N T O P R O F. M E. H É L I O E S P E R I D I Ã O

Daniel Wildt

Classes e Objetos. Sintaxe de classe em Java

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

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Linguagem de Programação I

Programação Orientada a Objetos

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Modelagem de Processos

Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula

Análise e projeto de sistemas

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

Linguagem de Programação II Implementação

Conceitos de Programação Orientada a Objetos

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

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

Linguagem de programação Programação Orientada a objetos

UNIFEI Disciplina Professor

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Python Orientação a Objetos. Introdução à Programação SI2

Conceitos de Orientação a Objetos. Objeto Atributo Classe Método

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Conceitos de Programação Orientada a Objetos

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

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

Conceitos de Programação Orientada a Objetos

C com introdução a OO

Programação Orientada a Objetos em Python

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

DIAGRAMAS DE CLASSE UML

Herança e Propriedades

Laboratório de programação II

Linguagem de Programação III

Linguagem de Modelagem Unificada UML

Orientação a Objetos (OO)

Televisao tamanho tela emitirsom. conectarperifericos

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

ORIENTAÇÃO A OBJETOS Histórico:

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Levantamento de Classes

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

Modelo do Mundo Real. Abstração. Interpretação

COMPORTAMENTOS - Observações

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

2. Introdução à Programação e Análise. Orientada a Objetos

Programação Orientada a Objetos JAVA - NETBEANS

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

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

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

Introdução à Programação. Encapsulamento e Herança

Programação Orientada a Objetos

Capítulo 2. Orientação a Objetos

Programação Orientada a Objetos

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

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

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Modelagem Orientada a Objeto

Introdução à Programação. Conceitos Básicos de Orientação a Objetos

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

PROGRAMAÇÃO ORIENTADA A OBJETOS: Conceitos Iniciais

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Conceitos de Orientação a Objetos

Linguagem de Programação III

Instituto de Informática Estrutura de Dados II

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

Programação Orientada a Objeto (POO)

Linguagens de Programação Aula 12

PROGRAMAÇÃO ORIENTADA A OBJETOS

PROGRAMAÇÃO ORIENTADA A

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

Linguagem de Programação C++

Introdução à Orientação a Objetos em Java

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

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

Linguagem de Programação III

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Tópicos da Aula. Conceitos de programação orientada a objetos. Projeto orientado a objetos com UML

Projeto Orientado a Objetos

INF1013 MODELAGEM DE SOFTWARE

Desenvolvimento Web TCC Turma A-1

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 / 38

Programação Orientada a Objeto Hoje revisaremos os conceitos estudados de Orientação a Objeto vistos nas primeiras semanas do curso como preparação para a prova teórica. Caravalho, T.S.F. (FID) POO 2016 2 / 38

Modelagem Orientada a Objeto Conteúdo 1 Modelagem Orientada a Objeto 2 Mais sobre classes Diagrama de Classes 3 Padrões de codicação Cada classe no seu arquivo Nomemclatura Comentários Caravalho, T.S.F. (FID) POO 2016 3 / 38

Modelagem Orientada a Objeto Modelo OO Decomposição do sistema é orientada a objetos Os modelos são centrados nos objetos que compõe o sistema A análise OO é muito diferente da análise estruturada (esta se concentra nos procedimentos) Caravalho, T.S.F. (FID) POO 2016 4 / 38

Modelagem Orientada a Objeto Modelo Lógico Classes e Objetos Abstrações do problema que se está tratando. O que é um objeto? Variável... mas... permite que se faça nele operações. Logo, um objeto possui atributos (que são os dados) e comportamentos (que são os métodos, procedimentos ou funções) que atuam sobre ele. Exemplo de objetos: Carro, Casa, Sala... Caravalho, T.S.F. (FID) POO 2016 5 / 38

Modelagem Orientada a Objeto Como a OO funciona? Conjunto de objetos dizendo um para os outros o que fazer (enviando mensagens) Essas chamadas são realizadas através das funções pertencentes ao objeto Cada objeto tem seu espaço reservado na memória e, deve pertencer a um determinado tipo (Classe). Caravalho, T.S.F. (FID) POO 2016 6 / 38

Modelagem Orientada a Objeto Classes...? Cada objeto mesmo sendo único faz parte de uma classe de objetos = características comuns. Criar classes é algo essencial a se entender na OO: Se crio uma classes eu posso instanciá-la (criar objetos dessa classe); Se ela é um tipo eu posso manipulá-la na linguagem; Ela dene o comportamento e as características do objeto que será criado. Caravalho, T.S.F. (FID) POO 2016 7 / 38

Modelagem Orientada a Objeto características Comuns Todos os objetos de uma classe possuem características comuns: Todo carro possui uma cor, toda pessoa tem um nome... Cada objeto possui um estado: Um carro pode ser vermelho, uma pessoa pode se chamar Maria... Caravalho, T.S.F. (FID) POO 2016 8 / 38

Modelagem Orientada a Objeto Fazendo o Objeto trabalhar As classes pode possuir várias instâncias criadas, mas, como fazer com que elas se comuniquem? Fusca new Carro(); Fusca->andarPraFrente(); Fusca->andarPraTras(); Caravalho, T.S.F. (FID) POO 2016 9 / 38

Modelagem Orientada a Objeto Objetos e Interfaces O que os métodos fazem? Implementação. No modelo a implementação não é importante. Caravalho, T.S.F. (FID) POO 2016 10 / 38

Modelagem Orientada a Objeto Objetos e Interfaces O servidor vai funcionar como ele foi programado Cliente utiliza o objeto só poderá através da interface (visível) O que está oculto para o cliente: O que está escondido pode mudar sem estragar o que está funcionando) Se o cliente tiver acesso, ele pode fazer isso sozinho (estragar) Caravalho, T.S.F. (FID) POO 2016 11 / 38

Modelagem Orientada a Objeto Encapsulamento Controle de acesso Interface = métodos públicos Os métodos internos (não visíveis) = métodos privados Caravalho, T.S.F. (FID) POO 2016 12 / 38

Modelagem Orientada a Objeto Reutilização É possível usar o objeto da classe diretamente Usar o objeto de uma classe dentro de outra (nova) classe Atenção! Os verbos - conter, possuir - indicam a composição! Caravalho, T.S.F. (FID) POO 2016 13 / 38

Modelagem Orientada a Objeto 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 14 / 38

Modelagem Orientada a Objeto 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 15 / 38

Modelagem Orientada a Objeto 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 16 / 38

Modelagem Orientada a Objeto 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 17 / 38

Modelagem Orientada a Objeto 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 18 / 38

Mais sobre classes Conteúdo 1 Modelagem Orientada a Objeto 2 Mais sobre classes Diagrama de Classes 3 Padrões de codicação Cada classe no seu arquivo Nomemclatura Comentários Caravalho, T.S.F. (FID) POO 2016 19 / 38

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 20 / 38

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 21 / 38

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 22 / 38

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 23 / 38

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 24 / 38

Mais sobre classes 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 25 / 38

Mais sobre classes Diagrama de Classes Notação para Classe Caravalho, T.S.F. (FID) POO 2016 26 / 38

Mais sobre classes Diagrama de Classes Notação para Classe Especicação do acesso: public + private - protected # Caravalho, T.S.F. (FID) POO 2016 27 / 38

Mais sobre classes Diagrama de Classes Visibilidade Como vimos no projeto, os atributos e métodos poderm ser públicos, privados e protegidos. Público: quando é visível pela classe onde é denido e por outras classes Privado: quando são visíveis apenas pela classe em que são declarados Protegidos: quando são visíveis apenas pelas classes em que são declarados e por suas subclasses Caravalho, T.S.F. (FID) POO 2016 28 / 38

Mais sobre classes Diagrama de Classes Relacionamentos Podem ser: 1 dependência 2 generalização 3 associação Caravalho, T.S.F. (FID) POO 2016 29 / 38

Mais sobre classes 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 30 / 38

Mais sobre classes 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 31 / 38

Mais sobre classes 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 32 / 38

Padrões de codicação Conteúdo 1 Modelagem Orientada a Objeto 2 Mais sobre classes Diagrama de Classes 3 Padrões de codicação Cada classe no seu arquivo Nomemclatura Comentários Caravalho, T.S.F. (FID) POO 2016 33 / 38

Padrões de codicação Padrões de codicação Veremos a seguir algumas boas práticas para codicação de sistemas. Caravalho, T.S.F. (FID) POO 2016 34 / 38

Padrões de codicação Cada classe no seu arquivo Boas Práticas 1 A boa prática da modularização de código, nos diz que cada porção deste deve ser agrupada por similaridade de função/comportamento. 2 Se tenho uma classe no meu modelo chamada Pessoa, no meu código, crio um arquivo separado para guardar o código dessa classe (Pessoa.xyz). 3 Posso criar quantos arquivos forem as classes e/ou as similaridades de código (por exemplo ter um arquivo só com funções genéricas ou agrupá-las numa superclasse por exemplo). Caravalho, T.S.F. (FID) POO 2016 35 / 38

Padrões de codicação Nomemclatura Nomemclatura Já explicamos anteriormente, mas, não custa repetir: Os nomes dos atributos e métodos devem respeitar alguma convenção da linguagem; Sugere-se utilizar a Camel Case de acordo com o tipo de elemento: lowercamelcase são iniciados por letras minúsculas, usado na denição de variáveis e métodos; UpperCamelCase são iniciados por letras maiúsculas, usado para Classes O elemento deve obrigatoriamente ter seu nome iniciado por letra ou underline; Utilize nomes sugestivos e, que se adequem ao modelo. Caravalho, T.S.F. (FID) POO 2016 36 / 38

Padrões de codicação Comentários Comente seu código Toda linguagem de programação permite algum tipo de documentação de código. A principal delas é o comentário. O Python especicamente utiliza a tag # para permitir o comentário de linha e a tag ' ' ' (três aspas simples) para comentário de bloco, veja um exemplo: Caravalho, T.S.F. (FID) POO 2016 37 / 38

Padrões de codicação Comentários Exemplo class operacoes: ''' Esta classe faz operações numéricas básicas utilizando números inteiros ''' def soma(self): #método soma ''' Este método soma dois números ''' Caravalho, T.S.F. (FID) POO 2016 38 / 38