PROGRAMAÇÃO I HERANÇA E POLIMORFISMO

Documentos relacionados
NOVIDADES DO JAVA PARA PROGRAMADORES C

Java na Prática. Célio Silva Aula 3

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Herança. Prof. Leonardo Barreto Campos 1

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação Orientada a Objetos

Disciplina: Unidade III: Prof.: Período:

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Introdução à orientação a objetos

Programação Orientada a Objetos. Professor Leonardo Cabral - Larback

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

SIG-ISS Manual de integração do WebService para NFS-e

Desenvolvimento Web TCC Turma A-1

1 Visão Geral. 2 Instalação e Primeira Utilização. Manual de Instalação do Gold Pedido

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access


AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Programação Orientada a Objetos SANTOS, Rafael

Sobre o Visual C

SISTEMA OPERACIONAL - ANDROID

Engenharia de Software II

Programação Orientada a Objetos (DPADF 0063)

SISTEMA CAÇA-TALENTOS MANUAL DE OPERAÇÃO PERFIL SECRETARIA

Programação para Web HTML - Parte 2

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009)

Manual de Utilização. Ao acessar o endereço chegaremos a seguinte página de entrada: Tela de Abertura do Sistema

Criar e formatar relatórios

ESTRUTURA DE DADOS FILAS SEQUENCIAIS

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

TUTORIAL - Importação de dados de coleta de larvas de Aedes aegypti na Bairro de Higienópolis no município do Rio de Janeiro para o SPRING

Caso tenha alguma dificuldade nesta etapa, procure um técnico de informática para auxiliá-lo.

MANUAL e-sic GUIA DO SERVIDOR. Governo do Estado do Piauí

Treinamento de e-commerce

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

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

Sistema Integrado de Gerenciamento do ISS SIG-ISS. Manual de integração do WebService para NFS-e

Banco de Dados I Unidade 3: Projeto de BD Relacional. Cláudio Baptista

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

NOVA VERSÃO SAFE DOC MANUAL

Diagrama de Componentes e Implantação

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

FORMAÇÃO WORDPRESS. Desenvolvimento de sites com a plataforma Wordpress. Abel Soares abelbarbosasoares@gmail.com

CURSO BÁSICO DE CRIAÇÃO DE SITES MÓDULO 2 AULA 6

Portal nddcargo Manual de Utilização Contratante Visão Usuário Financeiro

Exercício. Exercício

Conhecendo o Delphi 2010

Inteligência Artificial

II Semana de Ciência e Tecnologia do IFMG campus Bambuí II Jornada Científica 19 a 23 de Outubro de 2009

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES

Capítulo 1. Importação de Dados de Instituições Financeiras - Arquivo TXT 3

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.

Rentabilize a sua assistência pós-venda e, em simultâneo, surpreenda os seus clientes com o seu profissionalismo

ÁREA DO PROFESSOR (TUTOR)

Criando Diagramas UML com o StarUML

django-pagseguro Documentation

Manual de Operações do Painel Administrativo do site

1. IDENTIFICAÇÃO FUNDAÇÃO FIAT SAÚDE E BEM ESTAR

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA INF INTRODUÇÃO À INFORMÁTICA

A uma plataforma online de gestão de condomínios permite gerir de forma fácil e simples a atividade do seu condomínio.

Gestão de Actas Escolares. Manual Utilizador. (Versão 4)

PREFEITURA DO MUNICÍPIO DE PORTO VELHO SECRETARIA MUNICIPAL DE ADMINISTRAÇÃO SEMAD DEPARTAMENTO DE RECURSOS DA TECNOLOGIA DA INFORMAÇÃO DRTI

POO Programação Orientada a Objetos

JAVA. Professor: Bruno Toledo

Fluxo de Caixa. 1. Conexão ao Sistema... 2

TUTORIAL PARA UTILIZAÇÃO DO SISTEMA DE REQUISIÇÃO DE TRANSPORTES NA UFOP

OBJETIVO: Cadastrar os dados da empresa que adquiriu o sistema. As empresas cadastradas no sistema, a partir desta tela, terão influência,

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

OI CLOUD SEJA BEM-VINDO!

Arquivos Indexados por Chaves Secundárias. Vanessa Braganholo

Manual Mobuss Construção - Móvel

MANUAL DE INTEGRAÇÃO FORTES AC PESSOAL / CONTÁBIL

Manual do Usuário. Quiz Online

Usando o e a Internet

Exercício 1. 1-Inicialize o Microsoft Word. Clique no botão iniciar menu programas e submenu Microsoft Word.

Criando um Site. Por: João Paulo Almeida

Modelo Comportamental

MANUAL DO PROFESSOR. - Inscrições Colégios. Colégios Participantes de Temporadas anteriores:

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

Declaração de Serviços Tomados

Como configurar o Microsoft Office 2013

Guia operação site

Objetivo do Portal da Gestão Escolar

COMO VENDER MAIS USANDO FUNIL DE VENDAS. Capítulo III: Etapas do Funil de Vendas

PORTAL JUD

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

Solicitação de Autorização Intercâmbio

Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

O sistema gestor já contem uma estrutura completa de categorias que são transferidas automaticamente para cada empresa nova cadastrada.

Programação para a Plataforma Android Aula 17. Broadcasts

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas

Registro de Retenções Tributárias e Pagamentos

Transcrição:

PROGRAMAÇÃO I HERANÇA E POLIMORFISMO Prof. Dr. Daniel Caetano 2017-1

Objetivos Compreender o conceito de herança na orientação a objetos Implementar herança para reuso de código e facilitar manutenção Compreender o conceito de polimorfismo Implementar polimorfismo aproveitando o potencial das linguagens orientadas a objetos

Material de Estudo Material Apresentação Acesso ao Material http://www.caetano.eng.br/ (Programação I Aula 8) Material Didático Programação I Págs 77 a 91

RETOMANDO: RELACIONAMENTOS DE OBJETOS

Relacionamento de Objetos Existem três tipos de relações Agregação: Carro Lista de Carros em Oferta Composição: Motor Carro (venda de veículos) Uso: Motorista Carro

HERANÇA

O que é herança? Herança é uma das características mais úteis das classes... Mas o que é? O que é herdar? Receber algo que foi construído por outra pessoa Simplificadamente, em programação, herança é exatamente isso: receber algo que foi programado anteriormente

Como é essa tal de herança? Ao longo das aulas criamos uma classe para representar um produto Imagine agora que tenhamos de criar, para um sistema de uma livraria, uma classe para representar um livro No contexto da livraria, o livro é um produto! Isso significa que ele vai ter um código de identificação, um nome e uma descrição, como o nosso produto

Como é essa tal de herança? Temos duas alternativas: 1. Criar uma classe chamada Livro e reescrever todo o código que já havíamos colocando na classe Produto 2. Criar uma classe Livro e reaproveitar as funcionalidades que já estão disponíveis na classe Produto A opção dois pode ser feita justamente com a tal da herança

Herança em Java No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse ou classe pai, da qual queremos herdar funcionalidades. 2. E vamos criar uma classe derivada, que chamamos de subclasse ou classe filha, que irá estender as funcionalidades da classe pai Livro Produto id / setid / getid nome / setnome / getnome desc / setdesc / getdesc autor / setautor / getautor

Herança em Java No Java, a herança funciona assim: 1. Temos Apenas uma classe as original, características que chamamos de superclasse ou classe pai, da qual queremos herdar funcionalidades. públicas e protegidas são herdadas...! 2. E vamos criar uma classe derivada, que chamamos de subclasse ou classe filha, que irá extender as funcionalidades da classe pai Livro Produto id / setid / getid nome / setnome / getnome desc / setdesc / getdesc autor / setautor / getautor

Herança em Java Observe que no processo de herança, todas as características públicas são herdadas Assim, no exemplo, um Livro não deixa de ser, também, um Produto... Todo objeto do tipo Livro será, ao mesmo tempo, um objeto do tipo Produto Livro Produto setid / getid setnome / getnome setdesc / getdesc autor / setautor / getautor

Definindo uma Classe Filha Para criar a nova classe, clique com o botão direito no ícone do pacote que tem o nome do projeto (projeto2)

Definindo uma Classe Filha Agora selecione novo > classe java

Definindo uma Classe Filha Agora dê um nome à classe: Livro

Definindo uma Classe Filha Observe a classe na área de projeto

Definindo uma Classe Filha Clique 2 vezes nesse ícone para ver o código

Informando quem é a Classe Pai Indique que esta classe extends Produto :

Informando quem é a Classe Pai Indique que esta classe extends Produto : Com isso já podemos usar a classe Livro como se fosse um Produto... Mas queremos adicionar o atributo autor ao Livro, não é?

Acrescentando atributos Acrescente o atributo autor como String:

Acrescentando atributos Acrescente o atributo autor como String:

Criando os getters e setters Clique com o botão direito na área da classe

Criando os getters e setters Selecione Inserir código...

Criando os getters e setters Selecione a opção Getter e setter...

Criando os getters e setters E marque os atributos para os quais quer gerar getters e setters

Criando os getters e setters O código será gerado automaticamente

Hierarquia de Classes Object é pai de todas as classes do Java Object String Produto Livro

Hierarquia de Classes Object é pai de todas as classes do Java Object Superclasse ou Classe Pai String Produto Livro Subclasse ou Classe Filha

Herança de Métodos Para saber quais métodos estão disponíveis, basta digitar o nome da referência e adicionar um. :

Herança de Métodos Para saber quais métodos estão Métodos disponíveis, basta Métodos digitar o nome em da variável Herdados e adicionar de um. : negrito estão Object definidos nesta classe...

Exemplo/Exercício Construa a Hierarquia ao lado: Produto: tem nome Livro: acrescenta autor Object Produto Experimente a) Criar um produto b) Criar um livro Livro c) Criar livro e colocar em uma ref. de produto d) Criar produto e colocar em uma ref. de livro

Para que misturar as bolas? Foi dito que pode-se guardar objetos de um tipo em uma referência de outro tipo Desde que o tipo da referência seja superclasse da classe do objeto... Mas... para que serve guardar objetos de tipos diferentes do da referência? Pedido Lista de Produtos Lista guarda qualquer subclasse de Produto E uma lista para Object, guarda o quê?

POLIMORFISMO E SOBRESCRITA DE MÉTODOS

Polimorfismo Pessoa dirige Veículo Carro é Veículo Pessoa dirige Carro Caminhonete é Veículo Pessoa dirige Caminhonete Objeto pessoa não precisa conhecer o tipo específico do objeto

Polimorfismo Projeto: Animais Classe Animal

Polimorfismo Projeto: Animais Herança Classe Gato Classe Cachorro Sobrescrita!

Sobrescrita (Override) Classe filha reimplementa... Um método da classe pai Em geral para executar algo diferente

Sobrescrita (Override) Como saber quais métodos posso executar? Observe a estrutura: O tipo da referência Animal: anda / emitesom Cachorro: anda / emitesom Gato: anda / emitesom / arranha

Sobrescrita (Override) Lembre-se: para saber quais métodos estão disponíveis, basta digitar o nome da referência e adicionar um. :

Sobrescrita (Override) Lembre-se: para saber quais métodos estão disponíveis, Métodos basta em Métodos digitar o nome da variável e adicionar negrito um estão Herdados. : definidos nesta classe...

Sobrescrita (Override) Como saber qual versão do método será executada? Observe a estrutura: Referência: Animal emitesom() Para um objeto: Animal: emitesom do Animal Cachorro: emitesom do Cachorro Gato: emitesom do Gato

Sobrescrita (Override) E se um objeto Cachorro quiser executar um método do objeto pai que foi sobrescrito? Objeto Cachorro Acionar emitesom do Animal Use a palavra super super.emitesom();

TIPOS DE HERANÇA

Tipos de Herança Herança Simples x Herança Múltipla Herança Simples Pessoa Funcionario Herança Múltipla Radio Rádio-Relógio Relógio Java não possui herança múltipla!

PERGUNTAS?

PARTE PRÁTICA

Experimentando Projeto: Animais Herança Classe Gato Classe Cachorro Sobrescrita!

Exercício Projeto: Pessoas Classe Pessoa String nome; int idade;

Exercício Projeto: Pessoas Classe Homem Idade mínima: 18 Classe Mulher Diz idade máxima: 35

APLICAÇÃO NO CASO PRÁTICO

Avançando no CadProd Abra o projeto CadProd. Crie uma classe para cada tipo de produto Livro: String autor CD: String banda DVD: Diretor BD: Diretor e se é 3D ou não

Avançando no CadProd Ainda no projeto CadProd Altere o programa principal de maneira que o preenchimento dos campos sejam parte dos objetos

PROJETO / ATIVIDADE

Projeto / Atividade Objetivo: criar cadastro de clientes simples Quem: Duplas especificadas A segunda entrega será 05/06 Listagem de clientes Busca de clientes Edição de clientes

Projeto / Atividade Hoje: Implementar a classe ListaDeClientes Nos mesmos moldes da CadProd Dois tipos de clientes: Cliente Pessoa Física (cpf) Cliente Pessoa Jurídica (cnpj) Cliente ClientePF ClientePJ