Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Documentos relacionados
Java para Desktop. Programação Orientada à Objetos 2 JSE

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

PROGRAMAÇÃO I HERANÇA E POLIMORFISMO

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

Programação Orientada a Objetos

Programação Orientada a Objetos

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS

Programação para Internet I

PROGRAMAÇÃO ORIENTADA A

Programação Orientada a Objetos

JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS

POO29004 Programação Orientada a Objetos

Programação Java. Linguagem de Programação Java

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Aula 02. Prof. Diemesleno Souza Carvalho

Java Standard Edition (JSE)

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação por Objectos. Java

Interfaces e Classes Abstratas

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

Classe Abstrata e Interface

p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco

POO29004 Programação Orientada a Objetos

Programação Orientada a Objetos

Aula 06. Prof. Diemesleno Souza Carvalho

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

TIMTec. Introdução à programação em linguagem JAVA

AULA 15 CONSTRUTORES. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

Herança e Polimorfismo

Orientação a Objetos - Herança

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Conceitos de Programação Orientada a Objetos

Programação Orientada a Objetos em Java

Programação Orientada a Objetos Relacionamentos entre classes

AULA 13 MÉTODOS. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Laboratório de Programação II

Programação Orientada a Objetos para Redes de Computadores. Polimorfismo com Hierarquias de Herança. Exemplo: Hierarquia Animal

Programação Java (nível intermediário) 4. Polimorfismo

Linguagem de Programação III

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert

Introdução à Orientação a Objetos em Java

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

PROGRAMAÇÃO I INTRODUÇÃO À ORIENTAÇÃO A OBJETOS

Aula 05 Classes, Atributos, Métodos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Aula 04 Introdução à Programação Orientada à Objetos

Programação Orientada a Objetos

Lição 11 Herança, polimorfismo e interfaces

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Linguagem de programação Programação Orientada a objetos

Construtores e Especificadores de Acesso

Python Orientação a Objetos. Introdução à Programação SI2

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

4 Conceito de Herança

Notas de Aula 04: Herança e polimorfismo.

Herança. Prof. Andrea Garcia PROW II

UNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

PROGRAMAÇÃO I INTRODUÇÃO À ORIENTAÇÃO A OBJETOS II

Unidade: sobrecarga, construtores e herança

Introdução ao Java. Prof. Herbert Rausch Fernandes

Visibilidade e Encapsulamento

Grupo de Usuários Java do Noroeste Paulista. Tópicos Avançados em Java

Programação para Internet I

Auto-Referenciamento e Herança

Técnicas de Orientação à Objeto. Introdução Modelagem de objeto, classe, atributos e métodos em linguagem Java Desenvolvimento Guiado por Testes

Introdução à Orientação a Objetos

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Linguagem de Programação I Apresentação da Disciplina

Programação Orientada a Objetos II Java Décima primeira aula

Programação Orientada a Objetos

Herança Tiago Eugenio de Melo

Strings e Arrays POO

Programação Orientada a Objetos

O que estas classes possuem em comum? 1) 2) 3)

Modelo do Mundo Real. Abstração. Interpretação

LP II / 1ª Lista de Exercícios

Orientação a Objetos AULA 06

Linguagem de Programação. Diagrama de classes

Programação Orientada a Objetos

Declaração de Construtores em Java

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Aprendendo. Java 2. Rodrigo Mello Ramon Chiara Renato Villela. Novatec Editora Ltda.

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Programação Orientada a Objetos

COMPORTAMENTOS - Observações

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

Programação Orientada a Objetos - 3º semestre AULA 04 Prof. André Moraes

Estrutura de Dados Funções e Procedimentos

Transcrição:

Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br

Programação Orientada a Objetos Na aula passada, vimos: Herança

Programação Orientada a Objetos Na aula de hoje, veremos: Polimorfismo

No pacote da aula 07, crie uma classe chamada Funcionario com um atributo código do tipo int. Faça com que este atributo seja incrementado automaticamente sempre que um objeto do tipo Funcionário for instanciado.

Crie uma classe Gerente que extende de Funcionario e tenha 2 atributos, sendo um usuário do tipo String e uma senha do tipo String.

Crie uma classe Telefonista que extende de Funcionario e tenha 1 atributo do tipo int chamado ramal.

O sistema do banco deve possuir um controle de ponto para registar a entrada e saída dos funcionários. O pagamento dos funcionários depende dessas informações.

Podemos definir uma classe para implementar o funcionamento de um relógio de ponto.

Podemos definir uma classe para implementar o funcionamento de um relógio de ponto.

A classe ControleDePonto possui 2 métodos: o primeiro para registrar a entrada e o segundo para registrar a saída dos gerentes do banco. Contudo, esses dois métodos não são aplicáveis aos outros tipos de funcionários.

Seguindo essa abordagem, a classe ControleDePonto precisaria de um par de métodos para cada cargo. Então, a quantidade de métodos dessa classe seria igual a quantidade de cargos multiplicados por dois. Imagine que no banco existam 30 cargos distintos. Teríamos 60 métodos na classe ControleDePonto.

Os procedimento de registro de entrada e saída e são idênticos para todos os funcionários. Consequentemente, qualquer alteração na lógica desses procedimentos implicaria na modificação de todos os métodos da classe ControleDePonto.

Além disso, se o banco definir um novo tipo de funcionário, dois novos métodos praticamente idênticos aos que já existem de ser adicionados na classe ControleDePonto. Analogamente, se um cargo deixar de existir, os dois métodos correspondentes da classe ControleDePonto deverão ser retirados.

Além disso, se o banco definir um novo tipo de funcionário, dois novos métodos praticamente idênticos aos que já existem de ser adicionados na classe ControleDePonto. Analogamente, se um cargo deixar de existir, os dois métodos correspondentes da classe ControleDePonto deverão ser retirados.

Com o intuito inicial de reutilizar código, estamos modelando os diversos tipos de funcionários do banco utilizando o conceito de herança.

Além de gerar reaproveitamento de código, a utilização de herança permite que objetos criados a partir das classes específicas sejam tratados como objetos da classe genérica.

Em outras palavras, a herança entre as classes que modelam os funcionários permite que objetos criados a partir das classes Gerente ou Telefonista sejam tratados como objetos da classe Funcionario.

Em outras palavras, a herança entre as classes que modelam os funcionários permite que objetos criados a partir das classes Gerente ou Telefonista sejam tratados como objetos da classe Funcionario.

Em outras palavras, a herança entre as classes que modelam os funcionários permite que objetos criados a partir das classes Gerente ou Telefonista sejam tratados como objetos da classe Funcionario. Desta forma, em alguns lugares do sistema do banco, será mais vantajoso tratar um objeto da classe Gerente como um objeto da classe Funcionario.

O registro de entrada ou saída não depende do cargo do funcionário. Não faz sentido criar um método que registre a entrada tipo de funcionário, pois eles serão sempre idênticos. Analogamente, não faz sentido criar um método que registre a saída para cada tipo de funcionário.

Dado que podemos tratar os objetos das classes derivadas de Funcionario como sendo objetos dessa classe, podemos implementar um método que seja capaz de registrar a entrada de qualquer funcionário independentemente do cargo. Analogamente, podemos fazer o mesmo para o procedimento de saída.

Dado que podemos tratar os objetos das classes derivadas de Funcionario como sendo objetos dessa classe, podemos implementar um método que seja capaz de registrar a entrada de qualquer funcionário independentemente do cargo. Analogamente, podemos fazer o mesmo para o procedimento de saída.

Dado que podemos tratar os objetos das classes derivadas de Funcionario como sendo objetos dessa classe, podemos implementar um método que seja capaz de registrar a entrada de qualquer funcionário independentemente do cargo. Analogamente, podemos fazer o mesmo para o procedimento de saída.

Os métodos registrarentrada() e registrarsaida() recebem referências de objetos da classe Funcionario como parâmetro. Consequentemente, podem receber referências de objetos de qualquer classe que deriva direta ou indiretamente da classe Funcionario.

A capacidade de tratar objetos criados a partir das classes específicas como objetos de um classe genérica é chamada de polimorfismo.

Aplicando a ideia do polimorfismo no controle de ponto, facilitamos a manutenção da classe ControleDePonto. Qualquer alteração no procedimento de entrada ou saída implica em alterações em métodos únicos.

Além disso, novos tipos de funcionários podem ser definidos sem a necessidade de qualquer alteração na classe ControleDePonto. Analogamente, se algum cargo deixar de existir, nada precisará ser modificado na classe ControleDePonto.

Além disso, novos tipos de funcionários podem ser definidos sem a necessidade de qualquer alteração na classe ControleDePonto. Analogamente, se algum cargo deixar de existir, nada precisará ser modificado na classe ControleDePonto.

Programação Orientada a Objetos Dúvidas?

Defina uma classe chamada Conta para modelar as contas de um banco, com o atributo do tipo double, saldo. Não esqueça dos getters, setters e construtores.

Defina duas classes específicas para dois tipos de contas do banco: - poupança, com o atributo do tipo int, diadoaniversario; - corrente, com o atributo do tipo double, limite. Não esqueça dos getters, setters e construtores.

Crie uma classe chamada GeradorDeExtrato com um método chamado imprimirextrato(conta c): void Ao executar esse método, imprima a data atual e o saldo da conta. Crie um programa, instancie objetos dos dois tipos de conta e execute o método de extrato.

Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br