SlideShare uma empresa Scribd logo
1 de 6
TUTORIAL JAVA:
POLIMORFISMO
DISCIPLINA: LINGUAGEM DE
PROGRAMAÇÃO II
Prof.ª M.ª Eng.ª Elaine Cecília Gatto
Bauru-SP
2015
_____________________________________
Página 2 de 6
INTRODUÇÃO
No tutorial anterior, foi criada uma hierarquia de classes de funcionários comissionados, em que a classe base mais
comissão empregado foi herdada da classe comissão empregado. Neste tutorial, usaremos os exemplos criados no tutorial
anterior. Nesta seção, serão utilizados métodos abstratos e polimorfismo para realizar os cálculos da folha de pagamento com
base no tipo de funcionário. A hierarquia de classe trabalhada neste tutorial é apresentada na Figura (10.2) abaixo. Este tutorial
foi feito com base no livro JAVA COMO PROGRAMAR dos autores DEITEL & DEITEL.
1: Criando a superclasse abstrata EMPREGADO
A Figura (10.3) abaixo apresenta a INTERFACE POLIMÓRFICA para a hierarquia de classe “EMPREGADO”.
_____________________________________
Página 3 de 6
Passo 1: Entre no Netbeans. Vá ao menu arquivo, escolha a opção NOVO PROJETO. Selecione Java, Aplicação Java e clique
em próximo. Em seguida, dê o nome ao projeto de Tutorial2 e desmarque a opção para criar automaticamente uma classe Java
principal. Quando o projeto estiver criado, clique com o botão direito em cima do nome do projeto, selecione NOVO, escolha
NOVO PACOTE e dê o nome de “br.com.tutorial2”. Agora, clique com o botão direito no pacote e escolha NOVO. Peça uma
nova classe Java (comum). Dê a ela o nome de “Empregado”. Em seguida, vá até a classe criada e adicione a palavra-chave
ABSTRACT como mostra o exemplo: public abstract class Empregado { }
Passo 2: Crie os seguintes atributos PRIVADOS da classe: String pNome, String uNome, String SSN;
Passo 3: Crie um construtor vazio
Passo 4: Crie um construtor parametrizado
Passo 5: Crie os métodos SET e GET
Passo 6: Adicione os métodos abaixo ao final da classe:
@Override
public String toString() {
return String.format("%s %snsocial security number: %s", getpNome(), getuNome(), getSSN());
}
public abstract double earnings();
2: Criando a subclasse concreta SalarioEmpregado
Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JAVA.
Dê a ela o nome de SalarioEmpregado. Em seguida, faça esta classe EXTENDER a classe Empregado.
Passo 2: Crie o seguinte atributo PRIVADO da classe: double salarioSemanal
Passo 3: Crie um construtor vazio
Passo 4: Crie os construtores parametrizados
Passo 5: Crie os métodos SET e GET
Passo 6: Adicione os métodos abaixo ao final da classe:
@Override
public double earnings() {
return getSalarioSemanal();
}
@Override
public String toString() {
return String.format("salaried employee: %sn%s: $%,.2f", super.toString(), "weekly salary",
getSalarioSemanal());
}
Passo 7: Modifique o método setSalarioEmpregado para:
public void setSalarioSemanal(double salarioSemanal) {
this.salarioSemanal = salarioSemanal < 0.0 ? 0.0 : salarioSemanal;
}
_____________________________________
Página 4 de 6
3: Criando a subclasse concreta HorasEmpregado
Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JA VA.
Dê a ela o nome de HorasEmpregado. Em seguida, faça esta classe EXTENDER a classe Empregado.
Passo 2: Crie os seguintes atributos PRIVADOs da classe: double salario e double horas
Passo 3: Crie um construtor vazio
Passo 4: Crie os construtores parametrizados
Passo 5: Crie os métodos SET e GET
Passo 6: Adicione os métodos abaixo ao final da classe:
@Override
public double earnings() {
if (getHoras() <= 40) {
return getSalario() * getHoras();
} else {
return 40 * getSalario() + (getHoras() - 40) * getSalario() * 1.5;
}
}
@Override
public String toString() {
return String.format("horas do empregado %sn%s: $%,.2f; %s: %,.2f", super.toString(),
"salário", getSalario(), "horas trabalhadas", getHoras());
}
Passo 7: Modifique o método setSalario para:
public void setSalario(double salario) {
this.salario = (salario < 0.0 ) ? 0.0 : salario;
}
Passo 8: Modifique o método setHoras para:
public void setHoras(double horas) {
this.horas = ( ( horas >= 0.0 ) && ( horas <= 168.0 ) ) ? horas : 0.0;
}
4: Criando a subclasse concreta ComissaoEmpregado
Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JAVA.
Dê a ela o nome de ComissaoEmpregado. Em seguida, faça esta classe EXTENDER a classe Empregado.
Passo 2: Crie os seguintes atributos PRIVADOs da classe: double porcentagemComissao e double vendasBrutasSemanais
Passo 3: Crie um construtor vazio
Passo 4: Crie os construtores parametrizados
Passo 5: Crie os métodos SET e GET
Passo 6: Modifique o método setPorcentagemComissao para
public void setPorcentagemComissao(double porcentagemComissao) {
_____________________________________
Página 5 de 6
this.porcentagemComissao = ( porcentagemComissao > 0.0 && porcentagemComissao < 1.0 )
? porcentagemComissao : 0.0;
}
Passo 7: Modifique o método setVendasBrutasSemanais para
public void setVendasBrutasSemanais(double vendasBrutasSemanais) {
this.vendasBrutasSemanais = ( vendasBrutasSemanais < 0.0 ) ? 0.0 :
vendasBrutasSemanais;
}
Passo 8: Adicione os métodos abaixo ao final da classe:
@Override
public double earnings() {
return getPorcentagemComissao()* getVendasBrutasSemanais();
}
@Override
public String toString() {
return String.format("%s: %sn%s: $%,.2f; %s: %.2f", "commission employee",
super.toString(), "gross sales", getVendasBrutasSemanais(), "commission rate",
getPorcentagemComissao());
}
5: Criando a subclasse concreta indireta BaseMaisComissao
Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JAVA.
Dê a ela o nome de BaseMaisComissao. Em seguida, faça esta classe EXTENDER a classe ComissaoEmpregado.
Passo 2: Crie o seguinte atributo PRIVADO da classe: double salário-base;
Passo 3: Crie um construtor vazio
Passo 4: Crie os construtores parametrizados
Passo 5: Crie os métodos SET e GET
Passo 6: Modifique o método setSalarioBase para
public void setSalarioBase(double salarioBase) {
this.salarioBase = ( salarioBase < 0.0 ) ? 0.0 : salarioBase;
}
Passo 7: Adicione os métodos abaixo ao final da classe:
@Override
public double earnings() {
return getSalarioBase()+ super.earnings();
}
@Override
public String toString() {
return String.format("%s %s; %s: $%,.2f", "base-salaried", super.toString(), "base salary",
getSalarioBase());
}
_____________________________________
Página 6 de 6
6: Demonstrando o processamento polimórfico, o operador INSTANCEOF e o
DOWNCASTING
Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JAVA
PRINCIPAL. Dê a ela o nome de Teste.
Passo 2: Adicione o seguinte código dentro do método PUBLIC VOID MAIN STRING ARGS
SalarioEmpregado se = new SalarioEmpregado(800.00, "John", "Smith", "111-11-1111");
HorasEmpregado he = new HorasEmpregado(16.75, 40, "Karen", "Price", "222 -22-2222");
ComissaoEmpregado ce = new ComissaoEmpregado(10000, .06, "Sue", "Jones", "333-33-
3333");
BaseMaisComissao bc = new BaseMaisComissao(5000, .04, 300, "Bob", "Lewis", "444-44-
4444");
System.out.println(" n Processando: n");
System.out.printf(" n %sn%s: $%,.2fnn", se, "earned", se.earnings());
System.out.printf(" n %sn%s: $%,.2fnn", he, "earned", he.earnings());
System.out.printf(" n %sn%s: $%,.2fnn", ce, "earned", ce.earnings());
System.out.printf(" n %sn%s: $%,.2fnn", bc, "earned", bc.earnings());
Empregado[] e = new Empregado[4];
e[ 0] = se;
e[ 1] = he;
e[ 2] = ce;
e[ 3] = bc;
System.out.println(" n Usando Polimorfismo: n");
for (Empregado empregadoAtual : e) {
System.out.println(empregadoAtual);
if (empregadoAtual instanceof BaseMaisComissao) {
BaseMaisComissao bmc = (BaseMaisComissao) empregadoAtual;
bmc.setSalarioBase(1.10 * bmc.getSalarioBase());
System.out.printf(" n new base salary with 10%% increase is: $%,.2fn",
bmc.getSalarioBase());
}
System.out.printf(" n Ganhou: $%,.2fnn", empregadoAtual.earnings());
}
for (int j = 0; j < e.length; j++) {
System.out.printf(" n Empregado %d é um %sn", j, e[ j].getClass().getName());
}
Passo 3: Limpe e construa o projeto. Em seguida, mande executar.

Mais conteúdo relacionado

Mais procurados

Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteMarcio Palheta
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)Mario Sergio
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoMarcio Palheta
 
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoCapítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoMarcio Palheta
 
Capítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasCapítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasMarcio Palheta
 
Pacotes -organizando_suas_classes_e_bibliotecas
Pacotes  -organizando_suas_classes_e_bibliotecasPacotes  -organizando_suas_classes_e_bibliotecas
Pacotes -organizando_suas_classes_e_bibliotecasPedro Neto
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceCapítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceMarcio Palheta
 
Interfaces POO
Interfaces POOInterfaces POO
Interfaces POOPedro Neto
 
Introdução à análise orientada a objetos parte 2
Introdução à análise orientada a objetos parte 2Introdução à análise orientada a objetos parte 2
Introdução à análise orientada a objetos parte 2irenescotolo
 

Mais procurados (20)

Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLite
 
Java11
Java11Java11
Java11
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)
 
Java12
Java12Java12
Java12
 
Java14
Java14Java14
Java14
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
 
Mvc delphi
Mvc delphiMvc delphi
Mvc delphi
 
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoCapítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
 
Exercicios - Java Swing
Exercicios - Java SwingExercicios - Java Swing
Exercicios - Java Swing
 
Capítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasCapítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telas
 
Pacotes -organizando_suas_classes_e_bibliotecas
Pacotes  -organizando_suas_classes_e_bibliotecasPacotes  -organizando_suas_classes_e_bibliotecas
Pacotes -organizando_suas_classes_e_bibliotecas
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceCapítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
 
Apostila php avancado
Apostila php avancadoApostila php avancado
Apostila php avancado
 
Java2
Java2Java2
Java2
 
Interfaces POO
Interfaces POOInterfaces POO
Interfaces POO
 
Basico dovba excel_tutorial1
Basico dovba excel_tutorial1Basico dovba excel_tutorial1
Basico dovba excel_tutorial1
 
Introdução à análise orientada a objetos parte 2
Introdução à análise orientada a objetos parte 2Introdução à análise orientada a objetos parte 2
Introdução à análise orientada a objetos parte 2
 
01 strategy
01 strategy01 strategy
01 strategy
 
Java10
Java10Java10
Java10
 
Java8
Java8Java8
Java8
 

Semelhante a Java Polimorfismo Tutorial

Aula 3 - Java Prof.ª Cristiane Fidelix
Aula 3 -  Java Prof.ª Cristiane FidelixAula 3 -  Java Prof.ª Cristiane Fidelix
Aula 3 - Java Prof.ª Cristiane FidelixCris Fidelix
 
Apresentação formação web - up marketing digital - módulo ii - 2º fds
Apresentação   formação web - up marketing digital - módulo ii - 2º fdsApresentação   formação web - up marketing digital - módulo ii - 2º fds
Apresentação formação web - up marketing digital - módulo ii - 2º fdsRangel Javier
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)jose-junior89
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Lista deexerciciono 02
Lista deexerciciono 02Lista deexerciciono 02
Lista deexerciciono 02jucibs
 
Construtores_Sobrecarga.pptx
Construtores_Sobrecarga.pptxConstrutores_Sobrecarga.pptx
Construtores_Sobrecarga.pptxJoberthSilva
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Thyago Maia
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetosunifesptk
 
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)Gabriel Bugano
 

Semelhante a Java Polimorfismo Tutorial (20)

Aula 3 - Java Prof.ª Cristiane Fidelix
Aula 3 -  Java Prof.ª Cristiane FidelixAula 3 -  Java Prof.ª Cristiane Fidelix
Aula 3 - Java Prof.ª Cristiane Fidelix
 
Dip the dependency inversion principle
Dip   the dependency inversion principleDip   the dependency inversion principle
Dip the dependency inversion principle
 
Refactoring
RefactoringRefactoring
Refactoring
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 
Apresentação formação web - up marketing digital - módulo ii - 2º fds
Apresentação   formação web - up marketing digital - módulo ii - 2º fdsApresentação   formação web - up marketing digital - módulo ii - 2º fds
Apresentação formação web - up marketing digital - módulo ii - 2º fds
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Lista deexerciciono 02
Lista deexerciciono 02Lista deexerciciono 02
Lista deexerciciono 02
 
Construtores_Sobrecarga.pptx
Construtores_Sobrecarga.pptxConstrutores_Sobrecarga.pptx
Construtores_Sobrecarga.pptx
 
Internacionalizacao
InternacionalizacaoInternacionalizacao
Internacionalizacao
 
Aula5
Aula5Aula5
Aula5
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3
 
Princípio law of demeter
Princípio law of demeterPrincípio law of demeter
Princípio law of demeter
 
Lista 2 1 java
Lista 2 1 javaLista 2 1 java
Lista 2 1 java
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetos
 
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
 
10 heranca
10   heranca10   heranca
10 heranca
 
Mini curso de c#.net
Mini curso de c#.netMini curso de c#.net
Mini curso de c#.net
 

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 

Último (20)

apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 

Java Polimorfismo Tutorial

  • 1. TUTORIAL JAVA: POLIMORFISMO DISCIPLINA: LINGUAGEM DE PROGRAMAÇÃO II Prof.ª M.ª Eng.ª Elaine Cecília Gatto Bauru-SP 2015
  • 2. _____________________________________ Página 2 de 6 INTRODUÇÃO No tutorial anterior, foi criada uma hierarquia de classes de funcionários comissionados, em que a classe base mais comissão empregado foi herdada da classe comissão empregado. Neste tutorial, usaremos os exemplos criados no tutorial anterior. Nesta seção, serão utilizados métodos abstratos e polimorfismo para realizar os cálculos da folha de pagamento com base no tipo de funcionário. A hierarquia de classe trabalhada neste tutorial é apresentada na Figura (10.2) abaixo. Este tutorial foi feito com base no livro JAVA COMO PROGRAMAR dos autores DEITEL & DEITEL. 1: Criando a superclasse abstrata EMPREGADO A Figura (10.3) abaixo apresenta a INTERFACE POLIMÓRFICA para a hierarquia de classe “EMPREGADO”.
  • 3. _____________________________________ Página 3 de 6 Passo 1: Entre no Netbeans. Vá ao menu arquivo, escolha a opção NOVO PROJETO. Selecione Java, Aplicação Java e clique em próximo. Em seguida, dê o nome ao projeto de Tutorial2 e desmarque a opção para criar automaticamente uma classe Java principal. Quando o projeto estiver criado, clique com o botão direito em cima do nome do projeto, selecione NOVO, escolha NOVO PACOTE e dê o nome de “br.com.tutorial2”. Agora, clique com o botão direito no pacote e escolha NOVO. Peça uma nova classe Java (comum). Dê a ela o nome de “Empregado”. Em seguida, vá até a classe criada e adicione a palavra-chave ABSTRACT como mostra o exemplo: public abstract class Empregado { } Passo 2: Crie os seguintes atributos PRIVADOS da classe: String pNome, String uNome, String SSN; Passo 3: Crie um construtor vazio Passo 4: Crie um construtor parametrizado Passo 5: Crie os métodos SET e GET Passo 6: Adicione os métodos abaixo ao final da classe: @Override public String toString() { return String.format("%s %snsocial security number: %s", getpNome(), getuNome(), getSSN()); } public abstract double earnings(); 2: Criando a subclasse concreta SalarioEmpregado Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JAVA. Dê a ela o nome de SalarioEmpregado. Em seguida, faça esta classe EXTENDER a classe Empregado. Passo 2: Crie o seguinte atributo PRIVADO da classe: double salarioSemanal Passo 3: Crie um construtor vazio Passo 4: Crie os construtores parametrizados Passo 5: Crie os métodos SET e GET Passo 6: Adicione os métodos abaixo ao final da classe: @Override public double earnings() { return getSalarioSemanal(); } @Override public String toString() { return String.format("salaried employee: %sn%s: $%,.2f", super.toString(), "weekly salary", getSalarioSemanal()); } Passo 7: Modifique o método setSalarioEmpregado para: public void setSalarioSemanal(double salarioSemanal) { this.salarioSemanal = salarioSemanal < 0.0 ? 0.0 : salarioSemanal; }
  • 4. _____________________________________ Página 4 de 6 3: Criando a subclasse concreta HorasEmpregado Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JA VA. Dê a ela o nome de HorasEmpregado. Em seguida, faça esta classe EXTENDER a classe Empregado. Passo 2: Crie os seguintes atributos PRIVADOs da classe: double salario e double horas Passo 3: Crie um construtor vazio Passo 4: Crie os construtores parametrizados Passo 5: Crie os métodos SET e GET Passo 6: Adicione os métodos abaixo ao final da classe: @Override public double earnings() { if (getHoras() <= 40) { return getSalario() * getHoras(); } else { return 40 * getSalario() + (getHoras() - 40) * getSalario() * 1.5; } } @Override public String toString() { return String.format("horas do empregado %sn%s: $%,.2f; %s: %,.2f", super.toString(), "salário", getSalario(), "horas trabalhadas", getHoras()); } Passo 7: Modifique o método setSalario para: public void setSalario(double salario) { this.salario = (salario < 0.0 ) ? 0.0 : salario; } Passo 8: Modifique o método setHoras para: public void setHoras(double horas) { this.horas = ( ( horas >= 0.0 ) && ( horas <= 168.0 ) ) ? horas : 0.0; } 4: Criando a subclasse concreta ComissaoEmpregado Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JAVA. Dê a ela o nome de ComissaoEmpregado. Em seguida, faça esta classe EXTENDER a classe Empregado. Passo 2: Crie os seguintes atributos PRIVADOs da classe: double porcentagemComissao e double vendasBrutasSemanais Passo 3: Crie um construtor vazio Passo 4: Crie os construtores parametrizados Passo 5: Crie os métodos SET e GET Passo 6: Modifique o método setPorcentagemComissao para public void setPorcentagemComissao(double porcentagemComissao) {
  • 5. _____________________________________ Página 5 de 6 this.porcentagemComissao = ( porcentagemComissao > 0.0 && porcentagemComissao < 1.0 ) ? porcentagemComissao : 0.0; } Passo 7: Modifique o método setVendasBrutasSemanais para public void setVendasBrutasSemanais(double vendasBrutasSemanais) { this.vendasBrutasSemanais = ( vendasBrutasSemanais < 0.0 ) ? 0.0 : vendasBrutasSemanais; } Passo 8: Adicione os métodos abaixo ao final da classe: @Override public double earnings() { return getPorcentagemComissao()* getVendasBrutasSemanais(); } @Override public String toString() { return String.format("%s: %sn%s: $%,.2f; %s: %.2f", "commission employee", super.toString(), "gross sales", getVendasBrutasSemanais(), "commission rate", getPorcentagemComissao()); } 5: Criando a subclasse concreta indireta BaseMaisComissao Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JAVA. Dê a ela o nome de BaseMaisComissao. Em seguida, faça esta classe EXTENDER a classe ComissaoEmpregado. Passo 2: Crie o seguinte atributo PRIVADO da classe: double salário-base; Passo 3: Crie um construtor vazio Passo 4: Crie os construtores parametrizados Passo 5: Crie os métodos SET e GET Passo 6: Modifique o método setSalarioBase para public void setSalarioBase(double salarioBase) { this.salarioBase = ( salarioBase < 0.0 ) ? 0.0 : salarioBase; } Passo 7: Adicione os métodos abaixo ao final da classe: @Override public double earnings() { return getSalarioBase()+ super.earnings(); } @Override public String toString() { return String.format("%s %s; %s: $%,.2f", "base-salaried", super.toString(), "base salary", getSalarioBase()); }
  • 6. _____________________________________ Página 6 de 6 6: Demonstrando o processamento polimórfico, o operador INSTANCEOF e o DOWNCASTING Passo 1: Clique com o botão direito sob o pacote da classe “br.com.tutorial2”. Selecione NOVO. Selecione CLASSE JAVA PRINCIPAL. Dê a ela o nome de Teste. Passo 2: Adicione o seguinte código dentro do método PUBLIC VOID MAIN STRING ARGS SalarioEmpregado se = new SalarioEmpregado(800.00, "John", "Smith", "111-11-1111"); HorasEmpregado he = new HorasEmpregado(16.75, 40, "Karen", "Price", "222 -22-2222"); ComissaoEmpregado ce = new ComissaoEmpregado(10000, .06, "Sue", "Jones", "333-33- 3333"); BaseMaisComissao bc = new BaseMaisComissao(5000, .04, 300, "Bob", "Lewis", "444-44- 4444"); System.out.println(" n Processando: n"); System.out.printf(" n %sn%s: $%,.2fnn", se, "earned", se.earnings()); System.out.printf(" n %sn%s: $%,.2fnn", he, "earned", he.earnings()); System.out.printf(" n %sn%s: $%,.2fnn", ce, "earned", ce.earnings()); System.out.printf(" n %sn%s: $%,.2fnn", bc, "earned", bc.earnings()); Empregado[] e = new Empregado[4]; e[ 0] = se; e[ 1] = he; e[ 2] = ce; e[ 3] = bc; System.out.println(" n Usando Polimorfismo: n"); for (Empregado empregadoAtual : e) { System.out.println(empregadoAtual); if (empregadoAtual instanceof BaseMaisComissao) { BaseMaisComissao bmc = (BaseMaisComissao) empregadoAtual; bmc.setSalarioBase(1.10 * bmc.getSalarioBase()); System.out.printf(" n new base salary with 10%% increase is: $%,.2fn", bmc.getSalarioBase()); } System.out.printf(" n Ganhou: $%,.2fnn", empregadoAtual.earnings()); } for (int j = 0; j < e.length; j++) { System.out.printf(" n Empregado %d é um %sn", j, e[ j].getClass().getName()); } Passo 3: Limpe e construa o projeto. Em seguida, mande executar.