1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Iniciação ao Java – Márcio F. Campos
Polimorfismo e Acoplamento Dinâmico
Polimorfismo e Classes Abstratas Profa
Wagner Santos C. de Jesus
Linguagem técnica de programação I Java i
Linguagem técnica de programação I Java – REVISÃO
Princípios de Orientação à Objetos
Programação Orientada à Objetos
Oberdan B. Ferreira Polimorfismo Oberdan B. Ferreira
Programação I Aula 2 (Métodos)
Linguagem de Programação JAVA
Orientação a Objetos Parte I
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Wagner Santos C. de Jesus
Programação Orientada a Objetos - Java
Tratamento de Exceções
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Orientação a Objetos usando Java
Aula Prática 4 Monitoria IP/CC (~if669).
Polimorfismo.
Interfaces POO Avançado.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Herança e Arquitetura em camadas
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Herança Modelagem e Programação Orientada a Objetos
Orientação a Objetos Programação Estruturada e Orientada a Objetos
Introdução a Orientação a Objetos
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
2 – Revisão de Programação Orientada a Objetos
Polimorfismo - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour ▐ Polimorfismo ▐ Exemplo ▐ Classes Abstratas.
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
Linguagem de Programação
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Padrões de Projeto 2 – Revisão de Programação Orientada a Objetos.
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Introdução POO Thiago Medeiros Sistemas de Informação Definição: Sistemas de Informação é uma combinação de pessoas, dados, processos, redes de.
1. 2 Programação Orientada a Objetos II Prof. Maurício Rodrigues de Morais
1 Introdução aos Padrões de Projetos (na prática) Créditos: Lúbia Vinhas Hazel Carvalho Crato Adaptações: Prof. Nécio de Lima Veras.
Java é uma linguagem de programação e uma plataforma de computação lançada pela primeira vez pela Sun Microsystems em É a tecnologia que capacita.
1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais
INE5408 Estruturas de Dados Passagem por Referência.
IFRN Técnico em Informática para Internet Desenvolvimento de Algoritmos Prof. Gilbert Azevedo.
INE5408 Estruturas de Dados Introdução a Árvores - Conceitos - Árvores Binárias - Métodos e algoritmos de percurso - Métodos e algoritmos de balanceamento.
Noções de projeto orientado a objetos - camadas Prof. Gustavo Wagner (alterações) Prof. Tiago Massoni (Slides originais) Desenvolvimento de Sistemas FATEC-PB.
Programação para Internet Aula 06 Linguagem Java (Orientação a Objetos – Atributos e Métodos)
1 Interface (o termo) » Interface (a palavra reservada): Java estendeu o conceito de interfaces à um nível ainda mais flexível que permite construir entidades.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Jean Carlo Mendes
Laboratório de Computação Aula 05 – Array Prof. Fábio Dias
Disciplina: Análise e Projeto de Sistemas
Introdução ao Eclipse 3.2 Prof. Gustavo Wagner (modificações) Slides originais: Prof. Tiago Massoni Java Básico  Centro de Informática, UFPE.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
CONSTRUINDO CLASSES Dilvan Moreira (baseado no livro Big Java)
AULA Mais Herança Curso: Informática (Subseqüente) Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Herança e Polimorfismo Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
INE5408 Estruturas de Dados Estruturas de Dados básicas utilizando Vetores - Listas.
Lógica de programação Estruturas de seleção Estruturas de repetição Sub-Rotinas 1.
Implementação Orientada a Objetos – Aula 02 Introdução ao Java Prof. Danielle Martin Universidade de Mogi das Cruzes.
Revisão de Conceitos Thiago Medeiros Barros. Algoritmos Qualquer problema de computação pode ser resolvido executando uma série de ações em uma ordem.
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções” 1.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
PROGRAMAÇÃO ORIENTADA A OBJETOS EM C++ PAE: Pedro Shiguihara Professor: Dilvan Moreira.
CLASSES EM JAVA Dilvan Moreira (baseado no livro Big Java)
Aula 5 - Métodos. Desenvolvimento de Programas A melhor forma de construir programas grandes é dividi-los em programas menores que executam tarefas específicas.
Transcrição da apresentação:

1

2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais

3 Aula 6 Polimorfismo

4 Conteúdo  Polimorfismo  Conceito  Exemplos de Polimorfismo  Entendendo o Comportamento  Outros detalhes de implementação  Casting  Método instancef() Livro-texto: Capítulo 10

5 Herança  Conceito Polimorfismo, que significa “Muitas Formas”, é uma característica de OO que permite que classes filhas sejam armazenadas em variáveis declaradas com o tipo do pai, embora continuem respondendo pela execução dos seus métodos. Um exemplo deve deixar mais claro: Imagine um hierarquia de classes Animal, Peixe, Pássaro. Peixe e Pássaro são animais e deste herdam um método move(). O método mover() é “sobrecarregado” nas classes filhas de modo a adaptar o funcionamento ao tipo de animal. Nesse cenário, podemo criar um vetor de Animais, e nele armazenar Peixes e Pássaros. Além disso, se chamarmos o método mover() de algum animal na lista, o que será executado depende do tipo do animal (Peixe ou Pássaro) que estiver sendo movido.

6 Polimorfismo  Exemplo de Polimorfismo Considere uma classe FiguraGeometrica. Considere ainda que ela tem algumas filhas: Quadrado, Círculo, Triângulo. Imagine que criaremos um vetor de Figuras, onde guardaremos Quadrados, Círculos e Triângulos; em dado momento, varreremos esse vetor e pediremos que a área das figuras seja calculada. Qual método será executado, O do pai, ou o das Filhas? O método das filhas será executado. Uma vez que é um objeto do tipo filha que está armazenado naquela posição de memória. Vejamos o código de exemplo.

7 Polimorfismo public static void main(String args[ ]){ FiguraGeometrica[ ] figuras = new FiguraGeometrica[10]; for(int i = 0; i < 10; i++){ if( (i % 3) == 0) { figuras[i] = new Quadrado(i); } else if((i % 3) == 1) { figuras[i] = new Círculo(i); } else { figuras[i] = new Triangulo(i, i); } System.out.println(“A área da figura é: “ + figuras[i].area()); }

8 Polimorfismo  Entendendo o Comportamento  A partir do exemplo anterior podemos entender melhor o funcionamento do Polimorfismo:  É possível declarar uma variável com um determinado tipo e armazenar nesse espaço de memória um objeto de um tipo filho. Isso funciona porque o filho herda todo o comportamento do pai, possuindo todos os seus métodos.  No momento em que há uma chamada de método, o programa vai até a posição de memória onde está armazenado o objeto e chama o método correspondente. Como o objeto que está lá é um filho, o método executado é o do filho.

9 Polimorfismo  Entendendo o Comportamento (continuação)  Porém, como métodos que são visíveis e podem ser chamados, estão relacionados apenas os métodos do pai (já que a variável foi declarada com o seu tipo), não os do filho. Assim, não será possível chamar diretamente um método que o pai não tenha (seja só do filho).

10 Polimorfismo  Outros detalhes de implementação. Para resolver o problema citado anteriomente, podemos usar outra característica da linguagem Java chamada casting. Um casting é quando dizemos, explicitamente, ao programa para considerar que um determinado objeto é de um determinado tipo, ignorando qual o tipo pelo qual foi declarado. Caso o programador se engane, um erro será gerado em tempo de execução. Exemplo: Quadrado quad = (Quadrado)figuras[0]; Além disso, existe uma função Java chamada instanceof que informa se um objeto pertence ou não a uma classe, de modo facilitar o trabalho de casting. Desse modo, é possível testar se uma classe é mesmo de um determinado tipo antes de fazer casting dela.

11 Polimorfismo  Exercícios  Crie uma família de classes relacionadas por heranca que represente as seguintes entidades: animais, vertebrados, invertebrados, mamiferos, peixes, aracnideos, aves, cachorro, galinha, vaca, sardinha, aranha. Crie ainda, em cada classe, um método mover que deve retornar uma String com o texto da forma de movimento (por exemplo, peixe: nadar, vaca: andar, etc...). Crie também uma classe com método main que preencha um vetor com animais aleatoriamente e depois execute um por um seus métodos mover.  Altere o exercício sobre contas corrente e contas corrente especias feito em uma aula anterior para, além de incluir herança, possuir um método polimórfico toString, que mostra os dados da conta. Crie ainda um Classe com método main para testá- la nos moldes do exercício anterior.

12 Polimorfismo  Exercício Avaliado: Nos moldes do primeiro exercício da transparência anterior, crie um método mover na família de classes que representa as entidades: veiculo, veiculoAereo, veiculoTerrestre, veiculoMarinho, carro, aviao, moto, barco, carroAnfibio, jetski, triciclo. E teste-o.  Exercícios para casa 1.Livro Deitel - Exercícios do Cap.10