Sistemas de informação
USJT – 2012 – SI – PPINT – práticas de programaçao Integrada Professores: Aula: Assunto: Fulvio Bianco Prevot, Robson Calvetti, Rogério Augusto Rondini 05 Conceitos e Exercícios de Encapsulamento em Java. Conceitos Básicos abordados pelo Professor: Construtores em cascata e a utilização de “super”. Noções gerais de Acessibilidade – Public, Protected, Private, métodos “get… ” e “set… “. Exemplo A: Arquivo Ajava• import javax. swing. *; public class A { public A() { JOptionPane. howMessageDialog(null, “Passei pelo construtor da classe } } Exemplo B: Arquivo E import javax. wing. * {JOptionPane. show OF4 Swipe nentp { public BO ei pelo construtor Exemplo C: Arquivo C. java: import javax. swing. *; public class C extends B { public CO {JOptionPane. showMessageDialog(null, “Passei pelo construtor da classe CI”); } } Exemplo D: Arquivo Prog. java: import javax. swing. *; public class Prog { public static void main(Stnng args[]) { C obj = new C(); System. xit(O); } } Observações: 1 2Ao se executar Prog, os construtores de cada classe foram acionados NA ORDEM de ascendência no modelo de classes; Mas, o que acontece quando há uma herança, porém o onstrutor padrão (sem parâmetros) é substituído por um outro construtor, com parâmetros? Por exemplo: imediatamente ascendente! A seguir, como deve ficar o código da classe C: import javax. swing. *; public class C extends B { public C() { super(20); //costrutor da classe B, com valor 20 JOptionPane. howMessageDialog(null, “Passei pelo construtor da classe Cl”); } } Atividade Prática: Dadas as classes Empregado, Mensalista e Horista completar o código das classes Tarefeiro e Comissionado. // Empregado. java public class Empregado { // Atributos protected String nome, obrenome; protected int codigoEmp; // Construtores public Empregado() { setldentidade(“Ficticio”,”Imaginario”); setCodigoEmp(O); } public Empregado(String n,String s, int c) { setldentidade(n,s); setCodigoEmp(c); } // Métodos set public void setldentidade(String n,String s) { nome = n; sobrenome = s; } public void setCodigoEmp(int c) { codigoEmp = ( ? : O); } // Métodos get public String getldentidade() { return nome+” “+sobrenome; } public int getCodigoEmp() { return codigoEmp; } h’ Método tostring() public String tostring() { return “Nome: “+nome+”
sobrenome: “+codigoEmp; } } / Mensalista. java public class Mensalista extends Empregado { // Atributos protected double salarioMensal; // Construtores public Mensalista() { setSalarioMensal(0); } public Mensalista(String n, String s, int c, double sm) { super(n,s,c); setSaIarioMensal(sm); } h’ Métodos set public void setSalarioMensal(doubIe sm) { salarioMensal = ( sm > O ? m : O); } // Métodos get public double getSalarioMensal() { return salarioMensal; } // Método toString() public String tostring() { return “Mensalista: ” super. toString() + ”
Salario: ” + salarioMensal, // Horista. java public class Horista extend // Atributos protected valorHora; // Construtores public Horista() { setHoras(O); setValorHora(O); } public Horista(String n, String s, int c, double h, double vh) { super(n,s,c); setHoras(h); setValorHora(vh); } // Métodos set public void setHoras(double h) { horas = ( h>O.
OO ? h : 0. 00); } public void setVaIorHora(double vh) { valorHora = ( vh>O. 00 ? vh : 0. 00); } // Métodos get public double getHoras() { return horas; } public double getValorHora() { return valorHora; } h’ Método salarioHorista public double salarioHorista0 { return valorHora*horas; // Método tostrng() ublic String toString() { return “Horista: “+super. toString() “+salarioHorista(); } } // Tarefeiro. java // O salário mensal do tarefeiro e’ calculado // multiplicando valorDaTarefa por quantidade de tarefas feitas. ublic class Tarefeiro extends Empregado { // Atributos protected double valorDaTarefa; protected int quantidade; // Construtores // Métodos set // Métodos get // Método toString() // Método salarioTarefeiro } // Comissionado. ]ava // O salário do Comissionado é’ igual ao salarioMensal (herdado de Mensalista) // mais comissão (percentagem 1100), multiplicado or valorDaVenda. public class Comissionado extends Mensalista { // Atributos protected double comissao, valorDaVenda; // Construtores Métodos set // Métodos get Método salariocomissionado() // Método toString() } // Teste. ava 3 salário na saida // com duas casas decimais DecmalFormat duascasas = new // Criando 2 objetos empregados Empregado el new Empregado(); Empregado e2 = new Empregado(“Jose”,”da Silva”, 1); saida “Empregado 1: ‘ + el . toString() + ”
Empregado 2: ” + e2. toString(); // Modificando dados de empregado 1 el el . setCodigoEmp(2); // Após atualizar dados de empregado saida Apos atualizar dados de empregado 1:” + ”
Empregado 1:’ + el. toString() + ”
Empregado 2: ” + e2. oString(); // Criando dois objetos mensalistas Mensalista ml = new Mensalista(); Mensalista m2 = new Mensalista(“Hildebrando”,”Macabro”,3,450); saida ” + ml . toString() + ”
2) ” + m2. toString(); // Modificando dados de mensalista 1 ml m 1. setCodigoEmp(2); ml . setSalarioMensal(567. 4579); // Após atualizar dados de mensalista 1 saida Apos atualizar dados de empregado 1:” + ”
l) ” + ml . toString() + ”
2) ” + m2. toString(); l/’ Criando 1 objeto horista Horista hl = new Horista(“Mana”,”Erundina”, 5, 76. 4, 8. 53); saida +- hl . oString(); // Exibindo dados dos objetos JOptionPane. showMessageDialog(null, saida, “Teste”, JOPtionPane. lNFORMATION_MESSAGE); saida – “Folha de + ml . getldentidade() + ” • ” + duascasas. format(ml . getSalarioMensal() ) + ”
” + m2. getldentidade() + ” duascasas. format(m2. getSalarioMensaI() ) * ”
” + hl . getldentidade() + ” : ” + duascasas. format(hl . salanoHorista0 ) ” + duascasas. format(ml . getSalarioMensal() + m2. getSalarioMensal()+h1 . salarioHorista() ); JOptionPane. showMessageDialog(null, saida, system. exit(0); } } 4DF4