• Nenhum resultado encontrado

Aula 10 - Métodos Construtores e Polimorfismo

N/A
N/A
Protected

Academic year: 2021

Share "Aula 10 - Métodos Construtores e Polimorfismo"

Copied!
7
0
0

Texto

(1)

IFCE – Campus Cedro

Integrado em Informática Programação Orientada a Objetos

Prof. Eng. Derig Almeida Vidal

Mestre em Computação Aplicada, Engenheiro de Produção e Tecnólogo em Automática

Aula 10

Métodos Construtores e Polimorfismo

Prof. Derig Almeida Vidal IFCE - Cedro

Sumário

• Métodos Construtores

• Exemplos

• Polimorfismo

• Exemplos

• Exercícios

• Bibliografia

Métodos Construtores

• Os métodos construtores são criados para garantir

que os objetos serão inicializados de forma correta.

• Pode haver, numa mesma classe, vários métodos

construtores, entretanto, é necessário que cada um

tenha uma quantidade diferente de parâmetros ou

que os tipos de parâmetros sejam diferentes.

Métodos Construtores

• O construtor tem o mesmo nome da classe e é

sempre executado quando o objeto é criado.

• Um método construtor default é o método sem

parâmetros.

• O método construtor não retorna valor e não pode

ser chamado diretamente.

(2)

Prof. Derig Almeida Vidal IFCE - Cedro

Exemplo 01 – Classe sem construtor

public class Livro0 { private String titulo; private int pag; private float preco;

public void mostrarDados() {

System.out.println("Título = " + titulo + "\nPáginas = " + pag + "\nPreço = " + preco);

}

public static void main(String args[]) { Livro0 liv = new Livro0(); liv.mostrarDados(); }

}

Prof. Derig Almeida Vidal IFCE - Cedro

Exemplo 02 – Classe com construtor

public class Livro0 { private String titulo; private int pag; private float preco;

public Livro0() {

titulo = "OO com Java"; pag = 459;

preco = (float)312.56; }

public void mostrarDados() {

System.out.println("Título = " + titulo + "\nPáginas = " + pag + "\nPreço = " + preco);

}

Prof. Derig Almeida Vidal IFCE - Cedro

Exemplo 02 – Classe com construtor

public static void main(String args[]) { Livro0 liv = new Livro0(); liv.mostrarDados(); }

}

Prof. Derig Almeida Vidal IFCE - Cedro

Métodos Construtores

• Nota-se que a diferença entre eles é que no

primeiro exemplo não foi definido um método

construtor. Assim, o construtor executado é o

default, onde os atributos são inicializados com

zero para tipos de dados numéricos e vazio para

caracteres.

• A saída de dados do primeiro exemplo é:

– Título =

– Páginas = 0

– Preço = 0.0

(3)

Prof. Derig Almeida Vidal IFCE - Cedro

Métodos Construtores

• No segundo exemplo, o método construtor foi

definido e será executado quando for

instanciada a classe. Ou seja, os atributos serão

inicializados com os valores definidos no método

construtor.

• A saída de dados do segundo exemplo é:

– Título = OO com Java

– Páginas = 459

– Preço = 312.56

Prof. Derig Almeida Vidal IFCE - Cedro

Polimorfismo

• Polimorfismo é a capacidade de um objeto enviar

uma mensagem genérica para muitos outros

objetos; ou seja, um mesmo nome de método é

usado em diferentes classes ou usado na mesma

classe com quantidade de parâmetros diferentes

ou tipos de parâmetros diferentes.

• Quando o método polimórfico estiver na mesma

classe, o objeto saberá qual método executar pela

quantidade de parâmetros passados na chamada,

porque é necessário especificar os parâmetros a

serem utilizados.

Polimorfismo

• Logicamente, métodos polimórficos possuem

implementações diferentes.

• Ao criar o objeto, o método construtor a ser

executado dependerá da quantidade de

parâmetros passados na criação.

Exemplo 03 – Polimorfismo

public class Retangulo { private float base, alt; public Retangulo() {

base = 5; alt = 20; }

public Retangulo(float b, float a) { base = b; alt = a; }

public void mostrarArea() {

System.out.println("\nÁrea = " + base * alt); }

public static void main(String args[]) {

Retangulo ret1 = new Retangulo(10,2); Retangulo ret2 = new Retangulo(); ret1.mostrarArea();

(4)

Prof. Derig Almeida Vidal IFCE - Cedro

Exemplo 04 – Polimorfismo

public class Conta {

private String nConta, nAgencia; private float saldo;

private int numCheque; public Conta() {

nConta = "1034-5"; nAgencia = "234-X"; saldo = 100000; numCheque = 85534; }

public void mostrarCheque() {

System.out.println("\nNº Cheque: " + numCheque); }

public void imprimirCheque() { numCheque = numCheque + 20; }

public void imprimirCheque( int qtd ) { numCheque = numCheque + qtd;

} Prof. Derig Almeida Vidal

IFCE - Cedro

Exemplo 04 – Polimorfismo

public static void main(String args[]) { Conta cta = new Conta();

cta.imprimirCheque(); cta.mostrarCheque(); cta.imprimirCheque(10); cta.mostrarCheque(); } }

Prof. Derig Almeida Vidal IFCE - Cedro

Polimorfismo

• Havendo métodos polimórficos em classes

diferentes; o objeto saberá qual método executar,

porque ele executará o método de sua classe.

• Observando o exemplo a seguir, nota-se que existe

dois métodos polimórficos mostrarArea(), um na

classe Reta e outro na classe Para.

Prof. Derig Almeida Vidal IFCE - Cedro

Exemplo 05 – Polimorfismo

import javax.swing.JOptionPane; class Reta {

private float base, altura; public Reta() { base = Float.parseFloat( JOptionPane.showInputDialog("Base: ")); altura = Float.parseFloat( JOptionPane.showInputDialog("Altura: ")); }

public void mostrarArea() {

JOptionPane.showMessageDialog(null, "Área do Retângulo = " + (base * altura)); }

(5)

Prof. Derig Almeida Vidal IFCE - Cedro

Exemplo 05 – Polimorfismo

class Para {

private float altura, largura, compr; public Para() { altura = Float.parseFloat( JOptionPane.showInputDialog("Altura: ")); largura = Float.parseFloat( JOptionPane.showInputDialog("Largura: ")); compr = Float.parseFloat( JOptionPane.showInputDialog("Comprimento: ")); }

public void mostrarArea() { float area = 2 * (altura * largura + altura * compr + largura * compr); JOptionPane.showMessageDialog(null, "Área do Paralelepipedo = " + area); }

} Prof. Derig Almeida Vidal

IFCE - Cedro

Exemplo 05 – Polimorfismo

public class Poli01 {

public static void main (String args[]) { Reta reta1 = new Reta();

Para para1 = new Para();

reta1.mostrarArea();

para1.mostrarArea(); }

}

Exercício

1. O que será apresentado pelo programa abaixo?

class CA {

public CA() { System.out.println("ASTRA"); } public void MA1() { System.out.println("CORSA"); } public void MA2() { System.out.println("VECTRA"); } } class CB {

public CB() { System.out.println("POLO"); } public void MB1() { System.out.println("GOL"); } public void MA2() { System.out.println("GOLF"); } } public class JavaOO_0201 {

public static void main(String args[]) { CA a = new CA(); CB b = new CB();

a.MA1(); a.MA2(); b.MB1(); b.MA2(); }

Exercício

2. O que será apresentado pelo programa abaixo?

class COR {

public COR() { System.out.println("PRETO"); } public COR(int x) { System.out.println("ROSA"); }

public void COLORIR() { System.out.println("BRANCO");} } class CORES {

public CORES() { System.out.println("AMARELO"); } public void COLORIR() { System.out.println("AZUL"); } } public class JavaOO_0202 {

public static void main(String args[]) {

CORES a = new CORES(); COR b = new COR(1); a.COLORIR(); COR c = new COR(); c.COLORIR(); b.COLORIR();

(6)

Prof. Derig Almeida Vidal IFCE - Cedro

Exercício

3. Dadas as seguintes classes, o que será

apresentado pelo programa abaixo?

class COR { class Uni {

public Uni() { System.out.println("ZERO"); } public Uni(int x) { System.out.println("UM"); } public void write() { System.out.println("DOIS"); } public void read() { System.out.println("TRES"); } }

class Dez {

public Dez(int y) { System.out.println("ONZE"); } public Dez(String z) { System.out.println("DOZE"); } public void write() {System.out.println("DEZESSETE");} public void read() { System.out.println("DUZENTOS"); } }

Prof. Derig Almeida Vidal IFCE - Cedro

Exercício

3. Continuação:

public class JavaOO_0203 {

public static void main(String args[]) { Uni uni1 = new Uni();

Uni uni2 = new Uni(1); Dez dez2 = new Dez(10); Dez dez3 = new Dez("10"); uni1.write(); dez2.read(); uni2.read(); dez3.write(); } }

Prof. Derig Almeida Vidal IFCE - Cedro

Exercício

4. Com base nas classes Uni e Dez do exercício

anterior, o que será apresentado pelo programa

abaixo?

public class JavaOO_0204 {

public static void main(String args[]) { Dez dez1 = new Dez(10);

Uni uni1 = new Uni(); Uni uni2 = new Uni(1); Dez dez2 = new Dez("10"); dez2.write(); uni2.read(); uni1.write(); dez1.read(); } }

Prof. Derig Almeida Vidal IFCE - Cedro

Exercício

5. Dadas as seguintes classes, o que será

apresentado pelo programa abaixo?

class Circulo { protected int raio;

public Circulo(int r) { raio = r; } public Circulo() {

raio = 0; mostrar(); }

public void circular(int v1, int v2) { raio = v1 + v2;

mostrar(); }

public void mostrar() {

System.out.println("Círculo = " + raio); } }

(7)

Prof. Derig Almeida Vidal IFCE - Cedro

Exercício

5. Continuação

class Esfera { protected int raio;

public Esfera(int r) { raio = r * 4;

mostrar(); }

public void circular(int v1) { raio = v1 * 5;

mostrar(); }

public void desenhar() {

System.out.println("desenhando"); } public void mostrar() {

System.out.println("Esfera = " + raio); } }

Prof. Derig Almeida Vidal IFCE - Cedro

Exercício

5. Continuação

public class JavaOO_0205 {

public static void main(String args[]) { Circulo circulo1 = new Circulo(); circulo1.circular(10,20);

Esfera esfera2 = new Esfera(83); esfera2.circular(3);

Circulo circulo2 = new Circulo(9); circulo2.circular(3,5); esfera2.desenhar(); esfera2.circular(7); circulo2.circular(4,6); } }

Exercício

6. Com base nas classes Circulo e Esfera do

exercício anterior, o que será apresentado pelo

programa abaixo?

public class JavaOO_0206 {

public static void main(String args[]) { Esfera esfera1 = new Esfera(8); esfera1.circular(5);

Circulo circulo1 = new Circulo(); circulo1.circular(4,8);

Circulo circulo2 = new Circulo(10); circulo2.circular(15,7);

esfera1.circular(7); circulo1.circular(2,9); esfera1.desenhar();

Bibliografia

• GOMES, Gilene do Esp. Sto. Borges. Apostila de

Referências

Documentos relacionados

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,

Germânicas; Professora Doutora Patrícia Maria Campos de Almeida, Professor 11.. Adjunto, Chefe do Departamento de Letras Vernáculas; Professora Doutora Kristine

Pensando no público que freqüenta o Programa Integrado para a Terceira Idade da Unijuí, realizamos uma recente avaliação física para avaliar os níveis de

A PRESIDENTE da Assembleia da República, Verónica Macamo, defende que as mulheres devem ser solidárias umas com as outras e evitarem a tendência de se

No entanto, para aperfeiçoar uma equipe de trabalho comprometida com a qualidade e produtividade é necessário motivação, e, satisfação, através de incentivos e política de

A Figura 3 mostra o ganho relativo de massa corporal (1° dia = 100%) durante os 30 dias de tratamento, calculado a partir da mensuração diária de massa corporal (g) dos ratos

Na primeira delas, envolvendo a discussão de condições necessárias e suficientes para o preenchimento do quadrado pelo método, Lehmer afirma que se dois números guardam entre si

Valendo-se das contribuições do modelo da Lata do Lixo (Garbage Can) de Cohen e March (1972), Kingdon (1984) desenvolveu uma abordagem sobre a definição de agenda e de