• Nenhum resultado encontrado

Programação Orientada a Objetos

N/A
N/A
Protected

Academic year: 2021

Share "Programação Orientada a Objetos"

Copied!
18
0
0

Texto

(1)

Programação Orientada a Objetos

Herança e Polimorfismo

Msc. Paulo de Tarso F. Júnior 1

(2)

2

Revisando

(3)

3

Revisando

(4)

4

Revisando

• Uma classe que herda de outra é um subtipo

– Herança representa relacionamento “é um”

• Carro “é um” veículo

• Livro “é uma” publicação

• Cachorro “é um” mamífero

• Podemos ter uma variável do tipo ClasseA que

referencia um objeto do tipo ClasseB

(5)

5

Revisando

• Operador instanceof

– Determina se um objeto obj é de uma classe Cla

• retorna valor lógico (booleano)

• sintaxe: obj instanceof Cla

(6)

6

Revisando

• Toda classe JAVA tem pelo menos um construtor

• Todo construtor deve chamar o construtor da superclasse

– Deve ser o primeiro comando do construtor

– Compilador coloca código caso o programador não coloque

(7)

7

Construtores

• Acessando Construtores da superclasse:

– Utilizar super();

(8)

8

Sobrescrita

• Podemos redefinir um método na subclasse

– Sobrescrita do método

– Muda comportamento definido na superclasse

(9)

9

Sobrescrita

• É possível chamar o método da superclasse

– Palavra super

• super.metodo();

• Pode ser usado em qualquer método

• Podemos sobrescrever o método para adicionar

funcionalidade, mantendo a funcionalidade existente

class Superclasse{

/* ...*/

public void metodo(int x){

/* ... */

}

/* ... */

}

class Subclasse extends Superclasse{

public void metodo(int x){

/* ... */

super.metodo(10);

/* ... */

} }

(10)

10

Polimorfismo

• Muda comportamento

– Método executado depende da classe do objeto – Mesma chamada executa métodos diferentes

• obj.metodo() vai executar método que foi definido para classe do objeto referenciado por obj

– Permite executar métodos de subclasses mesmo sem conhecê- las

– Usado junto com sobrescrita

(11)

11

Polimorfismo

(12)

12

Classes Abstratas

• Não podem ser instanciadas

– Usadas com herança

• Definir superclasse com características e comportamento comuns e cada subclasse implementa suas especificidades

• Não existem animais da classe mamífero, apenas de suas subclasses

– Palavra abstract antes do nome da classe

public abstract classMamifero{

/* ... */

}

(13)

13

Métodos Abstratos

• Métodos podem ser abstratos

– Não possuem implementação

– Devem ser implementados pelas subclasses

• Ou estas também serão abstratas

– Se uma classe possuir pelo menos um método abstrato, ela deve ser abstrata

– Classes abstratas podem ter métodos implementados

public abstract classMamifero{

public abstract String metodo();

}

Não possui implementação!!!

(14)

14

Classes Finais

• Não podem ser herdadas

– Não possuem subclasses

• Não podem ser abstratas

– Por consequência, não possuem métodos abstratos

• Palavra final antes de class

public final class Gato{

/* ... */

}

(15)

15

Exercício em Sala

• Implementar as classes do seguinte diagrama:

(16)

16

Exercício em Sala

• Detalhes:

– Classe Pessoa e seu método realizarPagamento são abstratos;

– Atributo contatos[] é do tipo String e corresponde a um Array de 3 posições

– Atributo imposto corresponde a uma porcentagem que será diminuída sobre o valorPagamento (10%

para PF e 20% para PJ – Estes valores devem ser inicializados no construtor da classe);

– O método realizarPagamento retorna o valor do

pagamento diminuído da porcentagem do imposto;

(17)

Dúvidas

17 Prof. Paulo de Tarso F. Júnior

(18)

Referências

• RICARTE, I. L. M.; Programação Orientada a Objetos:

Uma Abordagem com Java. UNIVERSIDADE ESTADUAL DE CAMPINAS.

• MARTINS, F. M.; JAVA6 e Programação Orientada pelos Objectos. FCA - Editora de Informática, 2015.

• Os 4 pilares da Programação Orientada a Objetos.

Disponível em: http://www.devmedia.com.br/os-4- pilares-da-programacao-orientada-a-objetos/9264.

Acesso em 15/05/2016

• Programação orientada a objetos com Java. Disponível em:

http://www.devmedia.com.br/programacao-orientada-a-

objetos-com-java-easy-java-magazine-1/18449. Acesso em 18/05/2016

18 Prof. Paulo de Tarso F. Júnior

Referências

Documentos relacionados

Uma delas não estava presente na aula no dia do jogo, a que estava presente participou do jogo, a qual tem deficiência mental, ela não interage com os

CITS – Centro Internacional de Tecnologia de Softwares CITPAR – Centro de Integração de Tecnologia do Paraná CCT – Conselho Paraná de Ciência e Tecnologia CODEL – Companhia

Conclui- se que o brincar é uma cultura infantil e deve ser ofertado com qualidade nas instituições de Educação Infantil e no cotidiano das crianças, afim de garantir a criança

Esta tela apresenta os valores máximos de taxa de dose de radiação medidos na face e a 1 metro do radiofármaco embalado e permite a entrada de dados (código do cliente,

The accrued energy until maximum force is reached, as well as the overall accrued energy in assays with staples are shown to be statistically superior to Cortical Screws’

The purpose of this study was to assess upper limb´s function using the Constant´s questionnaire and the DASH index in patients diagnosed with proximal humerus fractures

• Para a realização de obras em planos horizontais ou verticais ou obras com uma inclinação em uma ou duas direções • Desempenho em obras com visível laser vermelho (NL400)

Para compreender como o processo de apropriação da identidade ocorre no ser humano, temos que considerar os vários atributos que contribuem nessa aquisição, como: o