LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS CLASSES ABSTRATAS

Slides:



Advertisements
Apresentações semelhantes
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
Advertisements

LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTERFACES Prof. Thiago Pereira Rique
H ERANÇA E P OLIMORFISMO Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS TRATAMENTO DE EXCEÇÕES
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE II Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS - LPOO APRESENTAÇÃO DA DISCIPLINA Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS APRESENTAÇÃO DA DISCIPLINA Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS - LPOO APRESENTAÇÃO DA DISCIPLINA Prof. Thiago Pereira Rique
LÓGICA MATEMÁTICA ARGUMENTOS E REGRAS DE INFERÊNCIA
LÓGICA MATEMÁTICA APRESENTAÇÃO DA DISCIPLINA
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO À TECNOLOGIA DE OBJETOS Prof. Thiago Pereira Rique
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS PROGRAMAÇÃO VISUAL COM NETBEANS IDE Prof. Thiago Pereira Rique
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS CLASSES E OBJETOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Linguagem de Programação II
Linguagem de Programação II
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS!
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Classes Abstractas.
Herança e Polimorfismo
Revisão POO Profa. Cintia Carvalho Oliveira
Curso de extensão em Desenvolvimento Web
Programação Orientada a Objetos com Java
Programação Orientada à Objetos
Oberdan B. Ferreira Polimorfismo Oberdan B. Ferreira
Tópicos avançados em internet A
Aula 3 CoL, atividade Polimorfismo (late binding) Modificador final Modificador abstract Interfaces Herança múltipla Atribuição, Construtores, Destrutores,
Herança em Java.
Capítulo 1 Retorno Covariante.
Professora Lucélia Oliveira
POO - I Prof.: Jean Carlo Mendes
Curso de Aprendizado Industrial Desenvolvedor WEB
Programação Orientada a Objetos - Java
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Curso de Aprendizado Industrial Desenvolvedor WEB
Filter Design Pattern.
Programação Orientada a Objetos - Java
POO II JEAN CARLO MENDES
PROGRAMAÇÃO ORIENTADA A OBJETOS
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação Orientada à Objetos
Interfaces e classes abstratas. Conceitos de Orientação a Objeto.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Aula Prática 4 Monitoria IP/CC (~if669).
POO II JEAN CARLO MENDES
Interfaces POO Avançado.
Classes Abstratas e Interface
Prof.: Bruno Rafael de Oliveira Rodrigues.  Existe para poder servir de molde para outras classes.  Deve ser declarada tal usando-se a palavra chave.
Aula Prática 1 Monitoria IP/CC (~if669). Roteiro 1.Polimorfismo 2.Superclasses Abstratas 3.Dúvidas 4.Exercício.
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Classes Abstratas e Interfaces GX – Aula05 1.
1 Java: Modificador abstract para classes e métodos Alcides Calsavara.
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
2 – Revisão de Programação Orientada a Objetos
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
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.
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Aula 7 – Padrão Abstract Factory
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)
Jean Carlo mendes
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS CLASSES ABSTRATAS Prof. Thiago Pereira Rique <thiagorique2011@gmail.com> http://thiagorique.wordpress.com/

Agenda Classes abstratas Métodos abstratos

Classes abstratas Vamos recordar um possível estado da classe Funcionario

Classes abstratas Considere agora a classe ControleDeBonificacoes

Classes abstratas O método registra recebe qualquer referência do tipo Funcionario. Funcionario ou seus subtipos (Gerente, Diretor, etc.). Estamos utilizando a classe Funcionario para o polimorfismo. Em alguns sistemas (como é o nosso caso), usamos uma classe com o objetivo de economizar código e ganhar polimorfismos para criar métodos genéricos. “Faz sentido ter um objeto do tipo Funcionario?” X “Faz sentido ter uma referência do tipo Funcionario?”

Classes abstratas Polimorfismo de referência Utilizar new em Funcionario pode não fazer sentido. Queremos algo mais concreto que Funcionario.

Classes abstratas Outro caso: Classe Pessoa Classe PessoaFisica Classe PessoaJuridica A classe Pessoa estaria sendo usada apenas para ganhar o polimorfismo. Não faz sentido permitir instanciá-la. Solução para este problema? Classes abstratas!!!

Classes abstratas Suponha que nossa empresa tenha apenas gerentes, diretores, secretárias, etc. O que vem a ser exatamente nossa classe Funcionario? Idealização de um tipo (um rascunho) Para nosso sistema, é inadmissível que um objeto seja apenas do tipo Funcionario. Palavra-chave abstract Impede a classe Funcionario de ser instanciada.

Classes abstratas Classe abstrata Funcionario.

Classes abstratas Considere o código: O problema é instanciar a classe. Criar referência é permitido.

Classes abstratas Podemos então herdar da classe Funcionario, reescrevendo o método getBonificacao. OBS.: “Fique claro que a decisão de transformar Funcionario em uma classe abstrata dependeu do nosso domínio!”

Métodos abstratos Se getBonificacao não fosse reescrito, seria herdado da classe mãe. Retornaria o salário + 20% Não existe uma regra para a bonificação de funcionários. Poderíamos então jogar fora o método getBonificacao da classe Funcionario? Funcionario f f.getBonificacao(); //não poderíamos fazer isto Em uma classe abstrata, podemos determinar que um método será sempre escrito pelas classes filhas.

Métodos abstratos Um método abstrato indica que todas as subclasses (classes filhas, concretas) devem reescrever o método.

Métodos abstratos Voltando ao método registra na classe ControleDeBonificacoes.

Métodos abstratos Voltando ao método registra na classe ControleDeBonificacoes. A chamada f.getBonificacao() não vai falhar! O método é abstrato, logo suas subclasses reescrevem o método (concreto).

REFERÊNCIA Apostila caelum-java-objetos-fj11 http://www.caelum.com.br/apostilas/