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



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

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

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

Orientação a Objetos

Orientação a Objetos

Lógica de Programação

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

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

Orientação a Objetos

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

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Introdução a Java. Hélder Nunes

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Análise e Projeto de Sistemas

Polimorfismo. Prof. Leonardo Barreto Campos 1

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

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

Profº. Enrique Pimentel Leite de Oliveira

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

Implementando uma Classe e Criando Objetos a partir dela

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

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

Banco de Dados. Modelo Entidade Relacionamento Estendido (ME-RX) Prof. Enzo Seraphim

Linguagem de Programação III

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)

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

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Nome do Processo: Requisição Gera Múltiplos pedidos para Múltiplos Fornecedores

Disciplina Técnicas de Modelagem

Tutorial para envio de comunicados e SMS

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Programação Orientada a Objetos (DPADF 0063)

Técnicas de Programação II

NetBeans. Conhecendo um pouco da IDE

Análise e Projeto Orientado a Objetos

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Especificação do 3º Trabalho

Programação por Objectos. Java

ANDROID APPLICATION PROJECT

HTML 5 + CSS APRESENTANDO O CSS ESTILOS LOCAIS

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

Manual de utilização do sistema de envio de sms marketing e corporativo da AGENCIA GLOBO. V

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

Java 2 Standard Edition Como criar classes e objetos

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

DIRETRIZES DE USO DA MATRIZ DE SISTEMATIZAÇÃO DE INFORMAÇÕES

Desenvolvimento OO com Java Orientação a objetos básica

Programação Orientada a Objetos em Java

Capítulo 4. Packages e interfaces

Computação II Orientação a Objetos

Orientação à Objetos. Aécio Costa

Manual Administrador - Mídia System

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

SMS Corporativo Manual do Usuário

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

NOVIDADES DO JAVA PARA PROGRAMADORES C

Exercícios Práticos Assunto: Criação de slots e instâncias da ontologia com o Protegé.

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

A importância da Senha. Mas por que as senhas existem?

2 Ferramentas Utilizadas

Geração e Otimização de Código

Manual Xerox capture EMBRATEL

www. inf.br Outubro/2008 5www.habisp.inf.br TREINAMENTO HABISP VERBA DE ATENDIMENTO

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

Orientação a Objetos com Java

ENGENHARIA DE SOFTWARE

Antes de tudo... Obrigado!

UML Aspectos de projetos em Diagramas de classes

Redes de Computadores. Prof. André Y. Kusumoto

2 Engenharia de Software

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Banco de Dados I. Projeto de Banco de Dados e o Modelo E-R Parte 2. Fabricio Breve

Manual SAGe Versão 1.2 (a partir da versão )

Sistema Operacional Unidade 13 Servidor Samba. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Trecho retirando do Manual do esocial Versão 1.1

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

Este tutorial está publicado originalmente em

Prof.: Clayton Maciel Costa

PHP INTRODUÇÃO CLASSES E OBJETOS

MANUAL DA SECRETARIA

NOVO ASSINADOR DO PROJUDI

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

Manual Operacional do SISCOAF

Portal Sindical. Manual Operacional Empresas/Escritórios

Tutorial para envio de comunicados

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

3 Resumo de dados com Tabelas e Gráficos dinâmicos

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

Prototype, um Design Patterns de Criação

Decorator Pattern. SISMO - Sistemas e Mobilidade Junho de Departamento de Informática / UFMA

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

Modelagemde Software Orientadaa Objetos com UML

Transcrição:

Classes Abstratas Técnico em Informática, M.Sc.

Classes Abstratas 2

Classes Abstratas Abstração Devemos considerar as qualidades e comportamentos independentes dos objetos a que pertencem, isolamos seus atributos considerando o que certo grupo de objetos têm em comum. Por exemplo: Imagine uma mesa: Logo, qualquer um, terá a imagem de uma mesa que tenha pés, uma base e uma finalidade. Mas não importa quantos pés, ou tipo de base ou a finalidade da mesa. Isso não fará com que a mesa imaginária, deixe de ser uma mesa. Ela sempre será uma mesa. 3

Classes Abstratas Abstração Na programação é necessário dizer ao computador para ser um objeto mesa. Mas antes disso é preciso dizer a este objeto qual seria a sua estrutura inicial. Neste caso teremos uma classe abstrata Mesa. Assim, classes abstratas servem como base para outras classes que queiram ser do mesmo grupo de objetos. 4

Classes Abstratas Abstração Uma classe abstrata não pode ser instanciada. Não é possível usar o new para criar um novo objeto de uma classe abstrata. Uma classe abstrata só pode ser herdada, e todo método, propriedade, evento que for abstrato deverá ser implementado pela classe filha. 5

Exemplo classe abstrata Implementação Conta Bancária 6

Classes Abstratas - exemplo No banco, todas as contas são de um tipo específico. Por exemplo, conta poupança, conta corrente ou conta salário. Essas contas poderiam ser modeladas através das seguintes classes utilizando o conceito de herança: Projeto Netbeans - Exemplo: ExercicioPOOBanco_Heranca_ClassesAbstratas 7

Classes Abstratas - exemplo 8

Classes Abstratas - exemplo Para cada conta do domínio do banco, devemos criar um objeto da classe correspondente ao tipo da conta. Por exemplo, se existe uma conta poupança no domínio do banco, devemos criar um objeto da classe ContaPoupanca. Faz sentido criar objetos da classe ContaPoupanca pois existem contas poupança no domínio do banco. Logo, dizemos que a classe ContaPoupanca é uma classe concreta pois Podemos criar objetos a partir dela. Por outro lado, a classe Conta não define uma conta que de fato existe no domínio do banco. Ela apenas serve como base (super classe) para definir as contas concretas. 9

Classes Abstratas - exemplo Não faz sentido criar um objeto da classe Conta pois estaríamos instanciado um objeto que não é suficiente para representar uma conta que pertença ao domínio do banco. Mas, a princípio não há nada proibindo a criação de objetos dessa classe. Para adicionar essa restrição no sistema, devemos tornar a classe Conta abstrata. Uma classe concreta pode ser diretamente utilizada para instanciar objetos. Por outro lado, uma classe abstrata não pode. Para definir uma classe abstrata, basta adicionar o modificador abstract. 10

Classes Abstratas - exemplo Exemplo: Instanciar!!! Todo código que tenta criar um objeto de uma classe abstrata não compila. 11

Exemplo classe abstrata Implementação Método Abstrato Conta Bancária 12

Métodos Abstratos - exemplo Suponha que o banco ofereça extrato detalhado das contas e para cada tipo de conta as informações e o formato desse extrato detalhado são diferentes. Além disso, a qualquer momento o banco pode mudar os dados e o formato do extrato detalhado de um dos tipos de conta. Neste caso, parece não fazer sentido ter um método na classe Conta para gerar extratos detalhados pois ele seria reescrito nas classes específicas sem nem ser reaproveitado. 13

Métodos Abstratos - exemplo Poderíamos, simplesmente, não definir nenhum método para gerar extratos detalhados na classe Conta. Porém, não haveria nenhuma garantia que as classes que derivam direta ou indiretamente da classe Conta implementem métodos para gerar extratos detalhados. Mas, mesmo supondo que toda classe derivada implemente um método para gerar os extratos que desejamos, ainda não haveria nenhuma garantia em relação as assinaturas desses métodos. As classes derivadas poderiam definir métodos com nomes ou parâmetros diferentes. Isso prejudicaria a utilização dos objetos que representam as contas devido a falta de padronização das operações. 14

Métodos Abstratos - exemplo Para garantir que toda classe concreta que deriva direta ou indiretamente da classe Conta tenha uma implementação de método para gerar extratos detalhados e além disso que uma mesma assinatura de método seja utilizada, devemos utilizar o conceito de métodos abstratos. Na classe Conta, definimos um método abstrato para gerar extratos detalhados. Um método abstrato não possui corpo (implementação). 15

Métodos Abstratos - exemplo Para garantir que toda classe concreta que deriva direta ou indiretamente da classe Conta tenha uma implementação de método para gerar extratos detalhados e além disso que uma mesma assinatura de método seja utilizada, devemos utilizar o conceito de métodos abstratos. Na classe Conta, definimos um método abstrato para gerar extratos detalhados. Um método abstrato não possui corpo (implementação). 16

Métodos Abstratos - exemplo As classes concretas que derivam direta ou indiretamente da classe Conta devem possuir uma implementação para o método imprimirextratodetalhado(). 17

Métodos Abstratos - exemplo Se uma classe concreta derivada da classe Conta não possuir uma implementação do método imprimirextratodetalhado()ela não compilará. Uma classe herdeira deverá implementar todas os métodos abstratos da super classe. 18

Métodos Abstratos - exemplo Instanciando objetos e usando métodos: Uma variável poderá ser declarada com o supertipo mas a instância terá que ser de um subtipo concreto. Para lembrar: Esta implementação também nos possibilitará a implementação do conceito de polimorfismo. 19

Referências Bibliográficas www.k19.com.br (o conteúdo deste material é baseado na apostila C# e Orientação a Objetos, de propriedade da K19 Treinamentos) Polimorfismo. Disponível em: http://techblog.desenvolvedores.net/2011/02/12/p olimorfismo-poo/. Acessado em: 02/06/2012. Agradecimento: Agradeço a K19 pela disponibilização da excelente apostila sobre C# e Orientação a Objetos. 20