De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.

Slides:



Advertisements
Apresentações semelhantes
Soluções Iterativas com Laços
Advertisements

Programação Orientada a Objeto
Herança, Polimorfismo e Classes Abstratas em Java
Orientação a Objetos: Encapsulamento e Classificação
Orientação a Objetos: Modificador Final para Métodos e Classes
1 Orientação a Objetos: Herança Alcides Calsavara.
Herança, sobrecarga e ligação dinâmica zHerança zReferência super zSobrecarga de métodos zSobreposição zLigação dinâmica de métodos zfinal.
Linguagens de Programação Orientadas a Objetos
Generalização, Especialização e Conceitos
Iniciação ao Java – Márcio F. Campos
Recursividade Inhaúma Neves Ferraz
Polimorfismo e Classes Abstratas Profa
Linguagem de Programação II
Linguagem de Programação II
Wagner Santos C. de Jesus
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Capítulo 9 Herança 1.
Métodos Programação II
Classes e objetos Arrays e Sobrecarga
Herança e Polimorfismo
Herança P. O. O. Prof. Ângela e Grace.
Classes e objetos P. O. O. Prof. Grace.
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Threads: Introdução e Implementação
Programação Orientada a Objetos com Java
JAVA Orientação a Objetos
Sobrecarga e Encapsulamento
Interfaces.
Programação Orientada à Objetos
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio Jackson, Jean, Patrícia, Saulo Centro de Informática.
Compilação de Linguagens OO Marco Simões (macs3) André Santos (alms)
Orientação a Objetos e Java Graduação em Ciência da Computação
Professora Lucélia Oliveira
Paulo Borba Centro de Informática Universidade Federal de Pernambuco
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a.
Wagner Santos C. de Jesus
Orientação a Objetos Parte II
Aula Prática 1 Monitoria IP/CC (~if669). Verificação Dinâmica de Tipos Métodos de superclasses e subclasses: Uso de métodos de subclasses quando se é.
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação Orientada a Objetos - Java
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Prof. Gilberto Irajá Müller
Orientação a Objetos usando Java
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Classes Abstratas e Interface
Herança e Arquitetura em camadas
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Paradigmas de Programação –Aula 7 Lab 2 Professores: Eduardo Mantovani Fábio Paula Santos.
Herança Modelagem e Programação Orientada a Objetos
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Herança.
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.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
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
Transcrição da apresentação:

De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula 17 e 18 - Herança de Classes, Redefinição de Métodos e Ligação Dinâmica Elaborado pelos professores: Admilson Ribeiro e Marco Fagundes Marco Fagundes

De 17 2 Herança, sobrecarga e ligação dinâmica l Sobrecarga de métodos l Herança l Referência super l Sobreposição l Ligação dinâmica de métodos l final

De 17 3 Sobrecarga de métodos(overloading) l A sobrecarga de métodos é usada para criar vários métodos com o mesmo nome que realizam tarefas semelhantes, mas sobre tipo de dados diferentes l Métodos sobrecarregados são distinguidos por sua assinatura (nome do método + número de parâmetros + tipo dos parâmetros) l Diferentes tipos de retorno dos métodos não podem ser considerados para sobrecarga

De 17 4 Sobrecarga de métodos(overloading) public class Ponto { int x, y; Ponto(int x, int y){ this.x = x; this.y = y; } Ponto( ){ x = -1; y = -1; } public class CriaPonto { public static void main(String args[ ]) { Ponto p = new Ponto( ); Ponto q = new Ponto(2,3); System.out.println(x= + p.x + y = + p.y); System.out.println(x= + q.x + y = + q.y); }

De 17 5 Generalização/Especialização

De 17 6 Herança l Herança é um conceito que mapeia as classes relacionadas entre si de maneira hierárquica l Os descendentes de uma classe herdem todas as suas variáveis e métodos de seus ancentrais bem como criem seus próprios l Os descendentes são subclasses e o seu ascendente imediato é chamado de sua superclasse

De 17 7 Hierarquia de Classes

De 17 8 Hierarquia de Classes l Uma classe derivada herda as propriedades e métodos da classe, podendo: Adicionar novos métodos Adicionar novos atributos Redefinir a implementação de métodos existentes (override)

De 17 9 Herança e Modificadores de Acesso

De Herança l Em java a palavra-chave extends é usada como mecanismo para definição de herança e subtipos l Java oferece suporte somente a herança simples de classes l Restrições Atributos e métodos privados são herdados, mas não podem ser acessados Construtores não são herdados O construtor padrão somente é disponível na subclasse se estiver presente na superclasse

De Herança public class Ponto { int x, y; Ponto(int x, int y){ this.x = x; this.y = y; } Ponto( ){ x = -1; y = -1; } public class Ponto3D extends Ponto { int z; Ponto3D(int x, int y, int z){ this.x = x; this.y = y; this.z = z; } Ponto3D( ){ x = -1; y = -1; z = -1; }

De super l Quando um método da subclasse redefinir um método da superclasse, pode-se acessar o método da superclasse através da palavra-chave super seguida de um ponto(.) l Somente a palavra super pode ser utilizada para ativar o construtor da superclasse

De super public class Ponto3D extends Ponto { int z; Ponto3D(int x, int y, int z){ super(x, y); //chama o construtor Ponto(x, y). this.z = z; } Ponto3D( ){ x = -1; y = -1; z = -1; }

De Sobreposição l Uma subclasse pode redefinir um método da superclasse utililizando a mesma assinatura isto é chamado de anular ou sobrescrever (override) um método da supeclasse l Quando a redefinição do método da superclasse não possuir a mesma assinatura na subclasse, isto não é anulação, mas um exemplo de sobrecarga de método

De Sobreposição class Ponto{ int x, y; Ponto(int x, int y){ this.x=x; this.y=y; } double distancia(int x, int y){ double dx = this.x - x; double dy = this.y -y; return Math.sqrt(dx*dx + dy*dy); } class Ponto3D extends Ponto{ int z; Ponto3D(int x, int y, int z){ super(x, y); this.z=z; } double distancia(int x, int y){ double dx = (this.x/z) - x; double dy = (this.y/z) -y; return Math.sqrt(dx*dx + dy*dy); }

De Ligação dinâmica public class A { void chameme( ) { System.out.println(Dentro do método chameme de A) } public class B extends A{ void chameme( ) { System.out.println(Dentro do método chameme de B); } public class DespachoDinamico{ public static void main (String args[ ]){ A obj1 = new B( ); obj1.chameme( ); }

De final l Todos os métodos e variáveis de instância herados podem ser sobrepostos l Para não permitir que as subclasses sobreponham suas variáveis ou seus métodos, pode declará-las como final l Por exemplo: final int ARQNOVO = 1; public final void imprime( );