Polimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo

Tamanho: px
Começar a partir da página:

Download "Polimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo"

Transcrição

1 Polimorfismo: aprendendo a prever o futuro BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Sumário Definições Tipos de Polimorfismo Dicas para o Polimorfismo Eficaz Armadilhas do Polimorfismo Polimorfismo x Objetivos da OO Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br LOO - Linguagens Orientadas a Objetos 2 Definições (1/5) O que é polimorfismo? Ter muitas formas Um mesmo nome pode representar um código diferente, selecionado por algum mecanismo automático Um mesmo nome pode representar muitos comportamentos diferentes Definições (2/5) Exemplo real Operação abrir Abrir porta Abrir cadeado Abrir janela Abrir caixa Abrir conta bancária Uma mesma operação pode ser realizada de diversas maneiras! LOO - Linguagens Orientadas a Objetos 3 LOO - Linguagens Orientadas a Objetos 4

2 Definições (3/5) Polimorfismo em linguagens de programação Nem todas as linguagens suportam o polimorfismo Linguagens polimórficas (suportam) Java e C++ são linguagens polimórficas Definições (4/5) Polimorfismo através da herança (1/2) Substituição de tipo Exemplo: o atributo cliente da classe Pedido pode receber objetos da classe ClientePJ ou ClientePF Linguagens monomórficas (não suportam) Cada nome é estaticamente vinculado a um único código LOO - Linguagens Orientadas a Objetos 5 LOO - Linguagens Orientadas a Objetos 6 Definições (5/5) Polimorfismo através da herança (2/2) O atributo cliente da classe Pedido é um exemplo de variável polimórfica O método tostring() produz diferentes saídas de acordo com a classe utilizada O polimorfismo garante que o método correto seja chamado Tipos de Polimorfismo (1/9) Polimorfismo de Inclusão Polimorfismo Paramétrico Sobreposição Sobrecarga Caso uma nova classe seja acrescentada na hierarquia Cliente, a classe Pedido não precisa ser alterada Software à prova do futuro LOO - Linguagens Orientadas a Objetos 7 LOO - Linguagens Orientadas a Objetos 8

3 Tipos de Polimorfismo (2/9) Polimorfismo de Inclusão (1/2) Também chamado de Polimorfismo Puro Objetos relacionados são tratados de forma genérica O exemplo da hierarquia de clientes representa o Polimorfismo de Inclusão Diminui a quantidade de código a ser escrito Um mesmo método pode manipular vários tipos Um mesmo atributo pode receber vários tipos Tipos de Polimorfismo (3/9) Polimorfismo de Inclusão (2/2) A inclusão de uma nova subclasse não implica em alterações no código já existente que manipule a classe mãe ou alguma classe ancestral O polimorfismo é o motivo pelo qual não se deve utilizar herança apenas para reutilização de código A herança deve ser utilizada principalmente para permitir comportamento polimórfico através da substituição de tipo LOO - Linguagens Orientadas a Objetos 9 LOO - Linguagens Orientadas a Objetos 10 Tipos de Polimorfismo (4/9) Polimorfismo Paramétrico (1/2) Métodos Paramétricos Programação de métodos genéricos Exemplo: int add(int a, int b) Matrix add_matrix(matrix a, matrix b) Real add_real(real a, real b) Como fazer para reunir todas as somas em um único método? Novo método: [T] add([t] a, [T] b) return a + b; Java 5 suporta o Polimorfismo Paramétrico com restrições Tipos de Polimorfismo (5/9) Polimorfismo Paramétrico (2/2) Tipos Paramétricos Programação de tipos genéricos Exemplo de uma estrutura genérica de fila: Queue [T] void enqueue([t]) [T] dequeue() boolean isempty() [T] peek() Java 5 suporta o Polimorfismo Paramétrico com restrições LOO - Linguagens Orientadas a Objetos 11 LOO - Linguagens Orientadas a Objetos 12

4 Tipos de Polimorfismo (6/9) Sobreposição Significa alterar o comportamento de um método na classe filha mantendo a mesma estrutura (parâmetros e tipo de retorno) da classe mãe Exemplo: tostring() na hierarquia Cliente O método tostring() da classe filha acrescenta os atributos da classe filha no string de retorno da classe mãe O polimorfismo garante sempre a chamada do método correto Tipos de Polimorfismo (7/9) Sobrecarga (1/3) Polimorfismo ad-hoc Permite a utilização de um mesmo nome de método para vários métodos diferentes Sem a sobrecarga, não seria possível a declaração de métodos com o mesmo nome O polimorfismo paramétrico pode substituir a sobrecarga A operação + em Java é um método sobrecarregado que permite a soma de vários tipos de elementos LOO - Linguagens Orientadas a Objetos 13 LOO - Linguagens Orientadas a Objetos 14 Tipos de Polimorfismo (8/9) Sobrecarga (2/3) Exemplo sem sobrecarga: public static int max_int( int a, int b ); public static long max_long( long a, long b ); public static float max_float( float a, float b ); public static double max_double( double a, double b ); Exemplo com sobrecarga: public static int max(int a, int b); public static long max(long a, long b); public static float max(float a, float b); public static double max(double a, double b); Tipos de Polimorfismo (9/9) Sobrecarga (3/3) Conversão e sobrecarga frequentemente andam lado a lado A conversão ocorre quando um argumento de um tipo é convertido para o tipo esperado Exemplo: public float add( float a, float b ); Caso algum argumento da função add seja do tipo int, o compilador fará a conversão para float LOO - Linguagens Orientadas a Objetos 15 LOO - Linguagens Orientadas a Objetos 16

5 Dicas para o Polimorfismo Eficaz (1/2) Para que o polimorfismo seja eficaz, a herança e o encapsulamento devem ser eficientes Sem o encapsulamento o código fica desprotegido e se torna dependente da implementação das classes O polimorfismo de inclusão depende diretamente da herança Hierarquias bem pensadas estimulam a capacidade de substituição Dicas para o Polimorfismo Eficaz (2/2) Pense e programe genericamente, pois o polimorfismo é que deve se preocupar com os detalhes específicos Estabeleça relacionamentos com capacidade de substituição: a classe Pedido deve estar relacionada à classe Cliente ao invés das classes ClientePJ ou ClientePF. Classes não-folha devem ser abstratas LOO - Linguagens Orientadas a Objetos 17 LOO - Linguagens Orientadas a Objetos 18 Armadilhas do Polimorfismo (1/3) Armadilhas do Polimorfismo (2/3) Armadilha 1: Mover comportamentos para cima na hierarquia Como os descendentes não devem retirar funcionalidades dos seus ancestrais, a movimentação de código para cima na hierarquia para tornar o código mais polimórfico pode ser perigosa Armadilha 2: Sobrecarga de desempenho A identificação automática do comportamento polimórfico que deve ser executado tem um custo de desempenho A complexidade de uma estrutura polimórfica deve ser levada em consideração quando o desempenho é um fator crítico para uma aplicação LOO - Linguagens Orientadas a Objetos 19 LOO - Linguagens Orientadas a Objetos 20

6 Armadilhas do Polimorfismo (2/3) Armadilha 3: Restrições de visibilidade Apesar de um método poder receber como parâmetro uma classe e todas as suas subclasses dentro de uma hierarquia, ele só poderá manipular os métodos e atributos declarados na classe base Polimorfismo x Objetivos da OO (1/7) O polimorfismo preenche cada um dos objetivos da POO produzindo software: 1. Natural 2. Confiável 3. Reutilizável 4. Manutenível 5. Extensível 6. Oportuno LOO - Linguagens Orientadas a Objetos 21 LOO - Linguagens Orientadas a Objetos 22 Polimorfismo x Objetivos da OO (2/7) Polimorfismo x Objetivos da OO (3/7) 1. Natural Em vez de programar para casos especiais, o polimorfismo permite trabalhar em um nível mais genérico e conceitual A sobrecarga e o polimorfismo paramétrico permitem a modelagem de um objeto ou método em nível conceitual em função do que o objeto ou método faz, sem se preocupar com os tipos de parâmetros que ele poderia processar O polimorfismo de inclusão permite a manipulação de tipos de objetos ao invés de implementações específicas 2. Confiável O polimorfismo simplifica o código Um mesmo código pode tratar várias classes Menos código menos erros Quando uma subclasse é adicionada em uma hierarquia, o código que manipula a classe superior não precisa ser alterado para manipular a nova classe Menos alterações menos erros LOO - Linguagens Orientadas a Objetos 23 LOO - Linguagens Orientadas a Objetos 24

7 Polimorfismo x Objetivos da OO (4/7) 3. Reutilizável O polimorfismo auxilia a reutilização Para que um objeto utilize outro, ele só precisa conhecer a interface a interface do segundo objeto Polimorfismo x Objetivos da OO (5/7) 4. Manutenível Como o polimorfismo resulta em menos código, consequentemente existe menos código para manter O polimorfismo reduz o número de estruturas condicionais, facilitando a manutenção LOO - Linguagens Orientadas a Objetos 25 LOO - Linguagens Orientadas a Objetos 26 Polimorfismo x Objetivos da OO (6/7) 5. Extensível O polimorfismo de inclusão permite a adição de novas subclasses no sistema sem que o código seja alterado para utilização dessas classes A sobrecarga permite a adição de novos métodos sem se preocupar com o conflito de nomes O polimorfismo paramétrico permite a extensão automática de classes para suportar novos tipos Polimorfismo x Objetivos da OO (7/7) 6. Oportuno Se você escreve menos código, sua produtividade aumenta e o código pode ser distribuído mais cedo Como o polimorfismo estimula a programação genérica, a adição de novos tipos se torna muito mais ágil LOO - Linguagens Orientadas a Objetos 27 LOO - Linguagens Orientadas a Objetos 28

8 Dúvidas LOO - Linguagens Orientadas a Objetos 29

Programação Orientada a Objetos. Polimorfismo

Programação Orientada a Objetos. Polimorfismo Programação Orientada a Objetos Polimorfismo Cristiano Lehrer, M.Sc. Introdução (1/3) Polimorfismo significa ter muitas formas. Em termos de programação, muitas formas significa que um único nome pode

Leia mais

Introdução ao POO (Projeto Orientado a Objetos)

Introdução ao POO (Projeto Orientado a Objetos) Introdução ao POO (Projeto Orientado a Objetos) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta

Leia mais

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

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos Prof. Alessandro Borges 2 Tópicos Introdução à Programação Orientada a Objetos Conceitos Objetivos Classes e Objetos Atributos

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

CURSO TÉCNICO DE INFORMÁTICA Módulo C ORIENTAÇÃO À OBJETO. Conceitos

CURSO TÉCNICO DE INFORMÁTICA Módulo C ORIENTAÇÃO À OBJETO. Conceitos CURSO TÉCNICO DE INFORMÁTICA Módulo C ORIENTAÇÃO À OBJETO Conceitos O QUE É UM OBJETO? CLASSE OBJETO OBJETO OBJETO CLASSE OBJETO OBJETO OBJETO ATRIBUTOS MÉTODOS PÚBLICO PRIVADO PROTEGIDO ABSTRATO ESTÁTICO

Leia mais

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos Introdução Programação Orientada a Objetos (POO) João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Avaliações Continuada: Resolução de Atividades Práticas em Sala; Resolução de Lista de Exercícios; Provas

Leia mais

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-7 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando

Leia mais

Prof. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1

Prof. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1 INE5603 Introdução à POO Prof. A. G. Silva 30 de outubro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de 2017 1 / 1 Especialização de classes (I) (Cap. 6) Operações de abstração como

Leia mais

Polimorfismo. O que é polimorfismo?

Polimorfismo. O que é polimorfismo? O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus

Leia mais

1 Introdução e Conceitos básicos

1 Introdução e Conceitos básicos 1 Introdução e Conceitos básicos Aula 02 Sumário Capítulo 1 Introdução e Conceitos básicos 1.1 Modelos 1.2 Tipos primitivos de dados 1.3 Tipo Abstrato de dados 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2

Leia mais

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

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Professora Sheila Cáceres Polimorfismo Polimorfismo Polimorfismo é a característica única de linguagens orientadas

Leia mais

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Profa. Juliana Santiago Teixeira Disciplina: Programação Orientada a Objetos I Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Paradigma Paradigma é a filosofia adotada na construção

Leia mais

Programação Orientada a Objetos JAVA - NETBEANS

Programação Orientada a Objetos JAVA - NETBEANS Programação Orientada a Objetos JAVA - NETBEANS Agenda Programação Orientada a Objeto (POO) Conceitos sobre POO Pilares da POO Objeto Classe Construtores Troca de Mensagens Pilares da POO Encapsulamento

Leia mais

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental Orientação a Objetos (OO) LPG II - Java Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios da Orientação a Objetos

Leia mais

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

Programação Java (nível intermediário) 4. Polimorfismo Programação Java (nível intermediário) 4 Polimorfismo Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de Programação I Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB bidu@ci.ufpb.br C++ e POO Fundamentação de Orientação a Objetos (OO) Sintaxe básica de C++ Modelagem de sistemas orientada a

Leia mais

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão Sumário Introdução à UML BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br

Leia mais

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

Linguagem de Programação I Apresentação da Disciplina Linguagem de Programação I Apresentação da Disciplina Apresentação da Disciplina Conteúdo: 1) Orientação a Objetos - Características da OO - Reutilização de código 2) Introdução à Linguagem Java - Histórico

Leia mais

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

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema

Leia mais

Levantamento, Análise e Gestão Requisitos. Aula 03

Levantamento, Análise e Gestão Requisitos. Aula 03 Levantamento, Análise e Gestão Requisitos Aula 03 Agenda Paradigma da Orientação a Objetos Classes e objetos Abstração Encapsulamento Herança e polimorfismo Associação de objetos Coesão e acoplamento Levantamento

Leia mais

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

Modelo do Mundo Real. Abstração. Interpretação Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema

Leia mais

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

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Interfaces Uma interface é uma forma abstrata de descrever um objeto A classe fixa a forma de um objeto

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

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

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs Programação Orientada a Objetos Professor: André Luis Meneses Silva andreluis.ms@gmail.com br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância

Leia mais

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br Curso teórico: Orientação a Objetos Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br Objetivos Conhecer os conceitos fundamentais de orientação a objetos; Aprender a criar e utilizar

Leia mais

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios

Leia mais

Laboratório de programação II

Laboratório de programação II Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando

Leia mais

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces 0 Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces Classes Abstratas À medida que você sobe na hierarquia de herança,

Leia mais

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

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc. PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos

Leia mais

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo. 1-Introdução à Programação Orientada a Objetos 1.1. O que é programação orientada a objetos? Programação orientada a objetos é uma metodologia de desenvolvimento de software. Sua principal vantagem é a

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

9 Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

Classe Abstrata e Interface

Classe Abstrata e Interface Orientação a objetos com Java Classe Abstrata e Interface Byron Leite byron.leite@gmail.com 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public

Leia mais

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior Programação Orientada a Objetos Prof. MsC Sílvio Bacalá Júnior Princípios básicos de OO Abstração Encapsulamento Modularidade Herança 2013 POO - Bacalá 2 Abstração Concentração nas características essenciais,

Leia mais

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos. Encapsulamento Programação Orientada a Objetos Encapsulamento Cristiano Lehrer, M.Sc. Introdução (1/2) Os três pilares da programação orientada a objetos são: Encapsulamento Herança Polimorfismo Encapsulamento é a característica

Leia mais

Herança Tiago Eugenio de Melo

Herança Tiago Eugenio de Melo Herança Tiago Eugenio de Melo tiago@comunidadesol.org Herança Conceito: Herança é a capacidade de especializar tipos de objetos (classes), de forma que os tipos especializados contenham, além de características

Leia mais

Linguagem de Programação IV Introdução

Linguagem de Programação IV Introdução Linguagem de Programação IV Introdução Prof. Alessandro Borges 2 Tópicos Orientação a objetos Classe Objeto Abstração Encapsulamento Herança Polimorfismo Plataforma Java 3 4 POO é um paradigma de programação

Leia mais

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

4 Conceito de Herança

4 Conceito de Herança 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática 6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded

Leia mais

PROGRAMAÇÃO ORIENTADA A

PROGRAMAÇÃO ORIENTADA A PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, MS M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded

Leia mais

Laboratório de programação II

Laboratório de programação II Laboratório de programação II Paradigma de orientação a Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Contextualização Paradigma de orientação a Contextualização A construção

Leia mais

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Herança. Prof. Fernando V. Paulovich  23 de agosto de 2010 Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade

Leia mais

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

Aprendendo. Java 2. Rodrigo Mello Ramon Chiara Renato Villela. Novatec Editora Ltda. Aprendendo Java 2 Rodrigo Mello Ramon Chiara Renato Villela Novatec Editora Ltda. www.novateceditora.com.br 1 Programação Orientada a Objetos O que é Programação Orientada a Objetos? É um paradigma de

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Herança e Polimorfismo Prof. Francisco de Assis S. Santos, Dr. São José, 2015. Herança em POO O conceito de herança torna mais rápido o desenvolvimento de softwares complexos

Leia mais

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

Linguagem de programação Programação Orientada a objetos Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação Programação Orientada a objetos Professor: Saulo Henrique Cabral Silva Paradigma da orientação a objetos Paradigma = forma de

Leia mais

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA LPOO - Linguagem de Programação Orientada a Objetos Prof. Msc. Célio R. Castelano Página 1 de 7 Curso Ciência da Computação Professor Célio Ricardo Castelano UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO

Leia mais

Aula 9 POO 1 Polimorfismo. Profa. Elaine Faria UFU

Aula 9 POO 1 Polimorfismo. Profa. Elaine Faria UFU Aula 9 POO 1 Polimorfismo Profa. Elaine Faria UFU - 2019 Sobrecarga de Métodos Numa mesma classe, dois ou mais métodos podem ter o mesmo nome Desde que tenham tipos, quantidade e/ou ordem de parâmetros

Leia mais

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

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Professora Sheila Cáceres Variáveis locais Campos são um tipo de variável. Eles: armazenam valores por toda a vida de um objeto; e

Leia mais

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU Aula 10 POO 1 Classes Abstratas Profa. Elaine Faria UFU - 2019 Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos

Leia mais

Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU

Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU Aula 3 POO 1 Classe e Objeto Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

Algoritmos II Aula 11 Funções e Procedimentos

Algoritmos II Aula 11 Funções e Procedimentos Algoritmos II Aula 11 Funções e Procedimentos Professor: Max Pereira max.pereira@unisul.br Ciência da Computação Programação Estruturada ou Programação Modular 1960 crise do software; Programas grandes

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-6 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando

Leia mais

Sobrecarga, Sobreposição e Polimorfismo

Sobrecarga, Sobreposição e Polimorfismo Sobrecarga, Sobreposição e Polimorfismo José Gustavo de Souza Paiva Sobrecarga de Métodos Numa mesma classe, dois ou mais métodos podem ter o mesmo nome Desde que tenham tipos, quantidade e/ou ordem de

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Interfaces Uma interface é uma forma abstrata de descrever um objeto A classe fixa a forma de um objeto

Leia mais

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla. Java First-Tier: plicações Orientação a Objetos em Java (III) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Herança: Simples Múltipla O tipo de herança que usamos até agora é chamado

Leia mais

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

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias

Leia mais

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

O que estas classes possuem em comum? 1) 2) 3) Material de Apoio 5 pg. 1/5 Sumário Este material apresenta conceitos gerais de herança. Em aula também serão abordados outros conceitos: classe abstrata, polimorfismo e ligação dinâmica. Motivação M1:

Leia mais

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

Java para Desktop. Programação Orientada à Objetos 2 JSE Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Avançando em Java com Polimorfismo. Prof.: Hugo Barros

Avançando em Java com Polimorfismo. Prof.: Hugo Barros Avançando em Java com Polimorfismo Prof.: Hugo Barros Tópicos da Aula Polimorfismo: Exemplos de polimorfismo Vantagens do polimorfismo Tipos de polimorfismo Métodos Abstratos Classes Abstratas Vinculação

Leia mais

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo POO Fundamentos Parte III Professor Vicente Paulo de Camargo PROGRAMAÇÃO ORIENTADA A OBJETOS HERANÇA SIMPLES Mecanismo que permite a uma classe, denominada de SUBCLASSE ou CLASSE FILHA, herdar todos os

Leia mais

Programação orientada a objetos

Programação orientada a objetos Programação orientada a objetos Neste capítulo: conceitos-chave que caracterizam as linguagens de programação orientadas a objetos; pragmática da programação orientada a objetos; o projeto de duas importantes

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

Leia mais

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Classes e Objetos. Prof. Fernando V. Paulovich  9 de agosto de 2010 Classes e Objetos SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O

C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O NOME DE CLASSES Toda classe deve começar com uma letra maiúscula. Não pode conter letras não ASCII (caracteres

Leia mais

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

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes - Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes

Leia mais

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo

Leia mais

Herança e Polimorfismo

Herança e Polimorfismo Herança e Polimorfismo 2013 O que veremos hoje? Herança e polimorfismo Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Polimorfismo em POO Mais

Leia mais

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

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos e Ligação Dinâmica Programação Orientada a Objetos e Polimorfismo A é a contribuição original do paradigma de programação orientado a objetos Fundamentos chave do paradigma OO: Abstração de Dados A herança

Leia mais

Entender o princípio do Polimorfismo; Conhecer Polimorfismo de Sobreposição e de Inclusão;

Entender o princípio do Polimorfismo; Conhecer Polimorfismo de Sobreposição e de Inclusão; POLIMORFISMO POLIMORFISMO É o último princípio que serve de base para a Programação Orientada a Objeto. Esse princípio também aposta na ideia da reutilização para facilitar o dia a dia da programação.

Leia mais

Unidade: sobrecarga, construtores e herança

Unidade: sobrecarga, construtores e herança Unidade: sobrecarga, construtores e herança 0 Unidade: sobrecarga, construtores e herança Sobrecarga Sobrecarregar (do inglês overload) um método é criar mais métodos com o mesmo nome, porém com assinaturas

Leia mais

Programação Orientada a Objetos JAVA - NETBEANS

Programação Orientada a Objetos JAVA - NETBEANS Programação Orientada a Objetos JAVA - NETBEANS Agenda Programação Orientada a Objeto (POO) Conceitos sobre POO Pilares da POO Objeto Classe Construtores Troca de Mensagens Pilares da POO Encapsulamento

Leia mais

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2 Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas

Leia mais

Apresentação da Disciplina e Revisão dos Conceitos de Orientação a Objetos

Apresentação da Disciplina e Revisão dos Conceitos de Orientação a Objetos Linguagem de Programação 3 Apresentação da Disciplina e Revisão dos Conceitos de Orientação a Objetos Prof. Mauro Lopes 1-31 22 Objetivos Nesta aula iremos apresentar a nossa disciplina e os conceitos

Leia mais

Televisao tamanho tela emitirsom. conectarperifericos

Televisao tamanho tela emitirsom. conectarperifericos 1 - Introdução a Programação Orientada a Objeto Para tentar solucionar o problema do baixo reaproveitamento de código, surgiu a idéia da Programação Orientada a Objeto (POO). A POO não é nova, sua formulação

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Pacotes e Encapsulamento Msc. Paulo de Tarso F. Júnior 1 Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes e interfaces

Leia mais

A classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

A classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli A classe ArrayList Java oferece uma classe chamada ArrayList, que permite a criação e manipulação de objetos; Um objeto ArrayList é semelhante a um vetor de objetos, mas oferece inúmeras vantagens em relação

Leia mais

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços

Leia mais

Os princípios do desenho orientado a objetos

Os princípios do desenho orientado a objetos Os princípios do desenho orientado a objetos Os princípios do desenho orientado a objetos Encapsulamento e congeneridade Domínios, grau de dependência e coesão Os perigos da herança e do polimorfismo Encapsulamento

Leia mais

Aula 4 Encapsulamento e Relacionamento Cleverton Hentz

Aula 4 Encapsulamento e Relacionamento Cleverton Hentz Aula 4 Encapsulamento e Relacionamento Cleverton Hentz Sumário } Encapsulamento } Propriedades } Relacionamentos } Composição } Herança 2 O que é encapsulamento? } O que vocês entendem por encapsular?!

Leia mais

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II) Aula 2 Princípios Básicos da Orientação a Objetos (Parte II) Introdução à Programação Orientada a Objetos Prof. Mayk Choji UniSALESIANO Araçatuba 12 de agosto de 2016 Sumário 1. Métodos 2. Mensagens 3.

Leia mais

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Conceitos de Linguagens de Programação - Características. Paavo Soeiro Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o

Leia mais

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?

Leia mais

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

Introdução ao Java. Prof. Herbert Rausch Fernandes Introdução ao Java Prof. Herbert Rausch Fernandes Orientação a Objetos Programação Orientada por Objetos: é a construção de sistemas de software como uma coleção estruturada de implementações de tipos

Leia mais

Métodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em:

Métodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em: Métodos em Java Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em: http://www.oxnar.com.br/aulas/java/ Os métodos são conhecidos como funções, ações de execuções ou procedimentos, sendo

Leia mais

Interfaces e Classes Abstratas

Interfaces e Classes Abstratas Interfaces e Classes Abstratas José Gustavo de Souza Paiva Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos abstratos

Leia mais

Relacionamentos entre objetos

Relacionamentos entre objetos Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores t e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos

Leia mais

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

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração Java First-Tier: Aplicações Orientação a Objetos em Java (II) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Sobrecarga Um recurso usual em programação OO é o uso de sobrecarga

Leia mais