Programação Orientada a Objetos



Documentos relacionados
Orientação a Objetos

Tema 1: Modelo Estático

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Análise e Projeto Orientados por Objetos

Fundamentos de Banco de Dados e Modelagem de Dados

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

PROGRAMAÇÃO OO DIAGRAMA DE CLASSES. Engenheiro Anilton S. Fernandes (asfernandes.com) Janeiro 2012

Implementando uma Classe e Criando Objetos a partir dela

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

3.1 Definições Uma classe é a descrição de um tipo de objeto.

CONCEITOS BÁSICOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

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

UML & Padrões Aula 3. UML e Padrões - Profª Kelly Christine C. Silva

2 Engenharia de Software

Mapa Mental de Engenharia de Software - Diagramas UML

Bem-vindo ao curso delta Gerenciamento de peso para a versão 9.1. Este curso aborda a nova solução de peso introduzida nessa versão.

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

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

Orientação à Objetos. Aécio Costa

Resolução da lista de exercícios de casos de uso

ProgramaTchê Programação OO com PHP

Orientação a Objetos

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

Disciplina Técnicas de Modelagem

Programação Orientada a Objeto

ORIENTAÇÃO A OBJETOS. Professora Lucélia Oliveira

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO CAPÍTULO 2 INSTALANDO O DELPHI... 10

Profº. Enrique Pimentel Leite de Oliveira

Guia de utilização da notação BPMN

Parte I. Orientação a objetos no PHP. Contato: <lara.popov@ifsc.edu.br> Site:

UNIP UNIVERSIDADE PAULISTA INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA (ICET) CURSO DE CIÊNCIAS DA COMPUTAÇÃO. O Paradigma da Orientação a Objeto

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

Desenvolvimento estruturado versus orientado a objetos.

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br

Bem-vindo ao tópico Múltiplas filiais.

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

Herança. Alberto Costa Neto DComp - UFS

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

Engenharia de Software III

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

TÉCNICAS DE PROGRAMAÇÃO

Programação Orientada a Objetos OOP. IFES Campus Vitória Engenharia Elétrica Professor: Danilo A. Silva

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

Sumário. Uma visão mais clara da UML

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

Introdução a Java. Hélder Nunes

c. Técnica de Estrutura de Controle Teste do Caminho Básico

PARANÁ GOVERNO DO ESTADO

UML: Diagrama de Casos de Uso, Diagrama de Classes

Indicamos inicialmente os números de cada item do questionário e, em seguida, apresentamos os dados com os comentários dos alunos.

4 Metodologia Tipo de pesquisa

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

2 Fundamentação Conceitual

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Curso: Diagnóstico Comunitário Participativo.

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

TechProf Documento de Arquitetura

UML Unified Modeling Language

Padrão Básico de Projeto: Interfaces e Polimorfismo

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

Guia para elaboração do Modelo de Domínio Metodologia Celepar

UML Aspectos de projetos em Diagramas de classes

DESENVOLVENDO O SISTEMA

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

Bem vindos à técnica CRC

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

Desenvolvimento de uma Etapa

Como funcionam os elevadores hidráulicos

Orientação a Objetos

Uma visão mais clara da UML Sumário

Polimorfismo. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais. Prof. André Y. Kusumoto

MODELAGEM DE SISTEMAS

Roteiro do Programa e Entrada/Saída

Prof. Marcelo Henrique dos Santos

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO)

Piaget diz que os seres humanos passam por uma série de mudanças previsíveis e ordenadas; Ou seja, geralmente todos os indivíduos vivenciam todos os

Análise e Projeto Orientado a Objetos

agility made possible

Montagem e Manutenção. Luís Guilherme A. Pontes

Resolverei neste artigo uma prova da fundação VUNESP realizada em 2010.

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

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

4 Experimentos Computacionais

Transcrição:

Programação Orientada a Objetos O FOCO NO MUNDO REAL

Orientação a objetos A orientação a objetos (OO) foi concebida na década de 70. Origem na linguagem SIMULA-67 (década de 60 - Noruega), que já implementava alguns conceitos da OO. SIMULA-68 foi a primeira linguagem a suportar os conceitos da OO. Smaltalk, criada pela Xerox, popularizou e incentivou a OO. Outras linguagens OO: C++, Object Pascal (Delphi), C#, Java... Java, de fato, popularizou a Orientação a Objetos.

Orientação a objetos Quando precisamos modelar um sistema para solucionar um grande problema, este problema deve ser dividido em partes menores. O modelo OO divide um problema em partes menores, para facilitar a resolução.

Orientação a objetos A criação da Programação Orientada a Objetos (POO ou OOP), eleva a programação e o desenvolvimento de sistemas para um novo patamar. A OO é um mecanismo moderno que ajuda a definir a estrutura de programas baseada nos conceitos do mundo real, sejam eles reais ou abstratos. A OO permite criar programas componentizados, separando as partes do sistema por responsabilidades e fazendo com que essas partes se comuniquem entre sí, por meio de mensagens. Essas partes do sistemas são chamadas de OBJETOS.

Orientação a objetos A OO é mais intuitiva e fácil de aprender do que as técnicas tradicionais, pois foca o problema em conceitos do mundo real. Dentre as vantagens que a OO proporciona, podemos destacar:

Orientação a objetos aumento de produtividade reuso de código redução das linhas de código programadas separação de responsabilidades componentização maior flexibilidade do sistema facilidade na manutenção, dentre outras vantagens.

Orientação a objetos A OO introduz e enfatiza os seguintes conceitos: Objeto Classe Mensagem Abstração Encapsulamento Herança Polimorfismo

Objetos Usamos o termo objeto para representar um determinado elemento do mundo real. Como exemplos de objetos, podemos citar os objetos físicos (um livro, uma mercadoria), funções de pessoas para os sistemas (cliente, vendedor), eventos (uma compra, um telefonema), interações entre outros objetos (um item de uma nota fiscal é uma interação entre uma compra e um produto do estoque) e lugares (loja matriz, revenda norte).

Objetos Por exemplo, vamos considerar um cachorro como nosso objeto de estudo:

Objetos Analisando este objeto, o cachorro, podemos deduzir que o mesmo possui algumas características que pertencem apenas a ele próprio. Por exemplo, um Um nome, Uma idade, Um comprimento de pêlos, Uma cor dos pelos, Uma cor dos olhos, Um peso

Objetos As características que descrevem um objeto são chamadas de atributos

Objetos Além do conjunto de características que descrevem o cachorro, podemos também identificar um conjunto de ações que ele é capaz de executar: Latir, Babar, Correr em círculos, Pegar a bola, Sentar, Comer, Dormir.

Objetos As ações que um objeto pode executar são chamadas de métodos.

Objetos A única maneira de interagir com os objetos é através dos métodos que ele disponibiliza. Para interagir com o cachorro, utilizamos os métodos que relacionamos acima: para alimentá-lo, utilizamos o método comer, para brincar com ele, utilizamos o método pegar a bola, etc.

Objetos Atributos e métodos: Os objetos do mundo real possuem propriedades que possuem valores. Estes valores definem o estado do objeto. As propriedades recebem o nome de atributos em OO. Podemos dizer que os atributos dos objetos são variáveis ou campos que armazenam os diferentes valores que as características dos objetos podem conter.

Objetos O estado de um objeto é o conjunto de valores de seus atributos em um determinado instante. O comportamento de um objeto é como ele age e reage em termos de suas mudanças de estado e troca de mensagens com outros objetos. O cachorro do nosso exemplo poderia ser representado pelos seguintes atributos: Nome Idade Cachorro Comprimento dos pêlos Cor dos pêlos Cor dos olhos Peso Pluto 2 anos curtos marrom preto 5Kg

Objetos Um outro objeto cachorro apresentaria valores diferentes para os mesmos atributos, por exemplo: Cachorro Nome Idade Comprimento dos pêlos Cor dos pêlos Cor dos olhos Peso Rabugento 5 anos curtos beje castanho 6Kg

Objetos Métodos: os métodos são as ações que o objeto pode realizar Um objeto exibe algum comportamento (executa uma operação) quando recebe um estímulo de outro objeto. Um objeto requisita a ação de algum outro objeto, enviando uma mensagem para ele.

Objetos Defina os atributos e métodos para os seguintes objetos: a) gato, cavalo, baleia, morcego, formiga b) Cadeira, porta, armário, c) Geladeira, impressora d) Quadrado, círculo

Notação Nome do obj Nome Idade Peso Cor olhos Comer Dormir ATRIBUTOS MÉTODOS

Classes Uma classe representa um conjunto de objetos que possuem características e comportamentos comuns e de agora em diante, diremos que um objeto é uma instância de uma determinada classe, ou seja, criaremos nossos objetos baseados nas características definidas nas classes. A ênfase da metodologia orientada a objetos é dada na criação das classes, e não dos objetos, como se poderia pensar pelo nome.

Classes Objetos de mesma classe possuem a mesma definição tanto para métodos quanto para atributos. Tomemos uma classe gatos formada de objetos gato. Estes objetos possuem as seguintes características: nome, idade, peso, cor de pelos, cor de olhos e comprimento de pelos. Além disso, o objeto possui as seguintes ações: miar, comer, dormir, subir na árvore. CLASSE GATOS

Classes Muitos objetos do mundo real possuem características comuns e podem ser agrupados de acordo com elas. Uma classe representa um gabarito (MODELO) para muitos objetos e descreve como estes objetos estão estruturados internamente. As classes Cães e Gatos possuem características e métodos comuns ex: Características comuns: nome, idade, peso, cor de pêlos, cor de olhos e comprimento de pêlos, Métodos comuns: pegar a bola, comer, dormir.

Classes Subclasse e superclasse. Ex: superclasse de mamíferos: SUPERCLASSE MAMÍFEROS SUBCLASSE GATOS SUBCLASSE ROEDORES SUBCLASSE EQUINOS SUBCLASSE CÃES

Classes Dentro da SuperClasse Mamíferos temos pelo menos 4 Subclasses: características em comum: nome, idade, peso, cor dos olhos cor dos pêlos. métodos em comum: comer, Sentar, dormir.

Classes Podemos distinguir quatro categorias diferentes de animais: cães gatos, equinos roedores Existem sete objetos na super classe mamíferos, sendo distribuídos em quatro subclasses Essa é a diferença entre classe e objeto: a classe é um modelo e todos os objetos daquela classe possuem atributos comuns, mas esses atributos possuem valores distintos, e os métodos também são comuns.

Classes Só serão definidos no objeto os atributos e métodos particulares desse objeto que não são atribuídos aos outros objetos da mesma classe. As classes das quais as outras dependem ANCESTRAIS As classes originadas a partir de outra DESCENDENTES A classe mamíferos tem: um ancestral (animais) dois descendentes (cães e gatos) Em cada descendente só é preciso descrever os atributos e métodos que apresentam alteração em relação à descrição do ancestral.

ANIMAIS Nome Idade Peso Cor olhos Comer Dormir ATRIBUTOS MÉTODOS AVES MAMÍFEROS RÉPTEIS Cor penas Tam penas Cor pêlos Comprim. pelos Tipo escamas Tam cauda Botar ovos CÃES Sentar Amamentar GATOS Rastejar Latir Pegar bola Miar Subir na árvore

As classes são definições de como os objetos devem ser e não existem na realidade. Somente os objetos têm existência. Ex: quando vamos mostrar nosso cachorro a alguém, não dizemos esse é um cão, e sim esse é o pluto, ou rabugento. O que se pode ver não é uma classe de seres,mas um cachorro específico, um objeto

Nome CLASSE ATRIBUTOS MÉTODOS Comer

Instanciação: A instanciação é quando a classe produz um objeto, como se ela fosse uma espécie de modelo ou gabarito para a criação de objetos. objeto é a instância de uma classe. Pelo exemplo que estamos estudando, cada cachorro que for armazenado é um novo objeto, uma nova instância da classe Cães. A classe serve de modelo para a criação de novos objetos.

INSTANCIAÇÃO: CLASSE CÃES Latir Pegar bola PLUTO REX TOTÓ RABUGENTO PULGUENTO

UMA CLASSE COM DUAS INSTÂNCIAS CLASSE CÃES Nome Idade Comp pelos Cor pelos Cor olhos peso Latir Pegar bola CÃO A Nome Idade Comprimento dos pêlos Cor dos pêlos Cor dos olhos Peso CÃO B Nome Idade Comprimento dos pêlos Cor dos pêlos Cor dos olhos Peso Pluto 2 anos curtos marrom preto 5Kg Rabugento 5 anos curtos beje castanho 6Kg

Classes puras ou abstratas: Classes puras são classes das quais os objetos nunca são instanciados diretamente, mas sempre por uma classe descendente dela. Essas classes são criadas para facilitar o processo de estruturação. Ex: classe Pessoa, que contém: atributos (nome, endereço, telefone, etc.) métodos (alteração de endereço, imprimir ficha, etc.) necessários para manusear dados de pessoas em um sistema de informação. A partir dessa classe genérica, criam-se classes descendentes específicas para manusear funcionário, gerente, etc.

FUNCIONÁRIO PESSOA GERENTE A classe Pessoa nunca terá um objeto a ela instanciado, ela só existe para unificar todos os atributos e métodos comuns as classes Gerente e Funcionário evitando assim a redundância. Pelo exemplo acima, Pessoa é uma classe pura. CLASSE PURA classe-&-classe CLASSE QUE PODE SER INSTANCIADA classe-&-objeto

Visibilidade de atributos e métodos + visibilidade pública: significa que todos têm acesso podendo o atributo e/ou método ser utilizado por método declarados dentro de outras classes. É parte da interface de uma classe e é visível por qualquer parte do código; # visibilidade protegida: significa que o atributo e/ou método é acessado através de métodos dentro da mesma classe e por métodos de classes ao longo do pacote no qual a classe é definida; - visibilidade privada: declaração que é parte da interface de uma classe, mas não é visível a quaisquer outras classes o atributo e/ou método pode apenas ser acessado por métodos declarados dentro da mesma classe.

MENSAGEM

Mensagem Um objeto por si só não significa muito em um sistema. Para ter algum sentido e valor esses objetos precisam interagir e comunicar-se entre si. Os objetos se comunicam por meio de mensagens. Quando um objeto A quer se comunicar com um objeto B é enviada uma mensagem de A para B. ATRIBUTOS Nome QUAL O SEU NOME? ATRIBUTOS Nome MÉTODOS FALAR mensagem MÉTODOS FALAR

Mensagem Enviar uma mensagem significa executar um método. Então, se A envia uma mensagem para B, podemos entender como o objeto A executando um método do objeto B. As mensagens são compostas por três partes: Objeto a quem a mensagem é endereçada Nome do método a ser chamado Parâmetros que o método recebe

ABSTRAÇÃO

Abstração O termo abstração, aplicado ao desenvolvimento de sistemas, significa a grosso modo que só deve ser representado aquilo que vai ser usado. Pelo princípio da abstração nós isolamos os objetos que queremos representar do ambiente complexo em que se situam, e nesses objetos representamos só as características que são relevantes para o problema em questão. Ex: Automóvel (Mecânico, Depto. de trânsito, consumidor)

Abstração Por exemplo: toda pessoa tem um atributo para cor dos olhos, mas em um sistema de folha de pagamento, essa informação não é relevante, portanto, ela não será incluída na relação de características de pessoas que queremos armazenar em nossosistema. Da mesma maneira, apesar de uma boa parte das pessoas ter animais de estimação, é completamente irrelevante para um sistema de folha de pagamento implementar um objeto para armazenar animais de estimação, e relacioná-los com as pessoas.

ENCAPSULAMENTO

Encapsulamento Na OO, encapsulamento é o mecanismo utilizado para disponibilizar métodos que operam sobre os dados e que protegem o acesso direto indevido aos atributos de uma instância fora da classe onde estes foram declarados. O encapsulamento ajuda a prevenir o problema de interferência externa indevida sobre os dados de um objeto, como objetos que possam alterar os dados de outros objetos indevidamente.

Ex: Alteração de uma conta bancária O saldo certamente não pode ser alterado ou manipulado diretamente, mas sim através de métodos adequados para isso, como métodos que fazem lançamentos de débitos e créditos. A alteração direta do saldo causaria um problema de cálculos e inconsistência de dados. A principal vantagem do encapsulamento é esconder a complexidade do código. Outra, é proteger o dados. ATRIBUTOS Saldo MÉTODOS Extrato Debitar Creditar

Herança A palavra herança, conforme um dicionário da lingua portuguesa, significa: Aquilo que se herda; Aquilo que se transmite por hereditariedade. Um exemplo simples de explicar a herança é a própria genética. Ou seja, um filho herda características genética dos pais, e por sua vez, repassa essas características aos seus filhos. Na OO, Herança é o mecanismo pelo qual uma classe obtém as características e métodos de outra para expandi-las ou especializálas de alguma forma, ou seja, uma classe pode herdar características, métodos e atributos de outras classes. Da mesma maneira uma transmite suas características para outras classes, tornando aquelas que recebem suas características suas herdeiras

Herança Herança significa que todos os atributos e métodos programados no ancestral já estarão automaticamente presentes em seus descendentes sem necessidade de reescrevê-los.

Herança Herança Simples A herança é denominada simples quando uma classe herda características de a PESSOA Nome RG CPF Endereço FUNCIONÁRIO CLIENTE Nome RG CPF Endereço Salário Limite Credito Preferências

Herança Herança Múltipla A herança é denominada múltipla quando uma classe herda características de duas ou mais superclasses.

PESSOA Nome RG CPF Endereço FUNCIONÁRIO Nome RG CPF Endereço Salário CLIENTE Limite Credito Preferências FUNCIONÁRIO CLIENTE - CLIENTE Desconto Limite Credito especial Preferências

POLIMORFISMO Miau!

O Polimorfismo é a capacidade de uma variável se referir em tempo de execução a objetos de diversas classes. Podemos definilo também como sendo o nome dado à capacidade que objetos diferentes têm de responder a uma mesma mensagem. Uma mesma mensagem pode apresentar formas de execução diferentes, próprias de cada objeto. Com esta característica o usuário pode enviar uma mensagem genérica e abandonar detalhes sobre a exata implementação sobre o objeto receptor.

Polimorfismo GRAVAR

O polimorfismo ocorre quando um método que já foi definido no ancestral é redefinido no descendente com um comportamento diferente.