Buscar

Aula 3A

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

1 
 
Aula 03 SobreCarga 
 
Sobrecarga de Métodos 
 
Neste capítulo vamos apresentar a sobrecarga de métodos, o uso de métodos com o mesmo nome, mas 
parâmetros diferentes. 
 
O que é a sobrecarga de métodos? 
 
Sobrecarga de métodos se refere ao uso de métodos com mesmo nome, mas com tipos de parâmetros ou 
número de parâmetros diferentes. Isto é, o nome do método é o mesmo, mas os tipos de parâmetros são 
diferentes. De um modo geral como os métodos sobrecarregados têm o mesmo nome, eles realizam 
basicamente a mesma tarefa, a diferença é o número de parâmetros e ou o tipo dos parâmetros que são 
recebidos. 
 
Exemplos de sobrecarga 
 
O exemplo a seguir declara métodos com o mesmo nome, métodos sobrecarregados. 
 
Exemplo: 
 
public void metodoA(int x, int y); // 1-int,int 
public void metodoA(float x, float y); // 2-float,float 
public void metodoA(int x, float y); // 3-int,float 
 
O compilador reconhece qual método você quer acessar verificando o tipo dos parâmetros e o número de 
parâmetros. 
 
Mudar o nome dos parâmetros não é uma sobrecarga, o compilador diferencia o tipo e a quantidade de 
parâmetros não o nome e sim pela sua assinatura. 
 
Exemplo de Sobrecarga 
 
package programas; 
import entity.Numeros; 
public class ExemploSobreCarga { 
 public static void main(String[] args) { 
 Numeros exemplo = new Numeros(); 
 System.out.print("===== Exemplo de Sobrecarga de Metodo ====="); 
 System.out.print("\n"); 
 System.out.print("Primeiro Metodo: 2 parametro "); 
 exemplo.imprime(1,2); 
 System.out.print("\nSegundo Metodo : 3 parametro "); 
 exemplo.imprime(1,2,3); 
 System.out.print("\nTerceiro Metodo: 4 parametro "); 
 exemplo.imprime(1,2,3,4); 
 } 
} 
 
package entity; 
public class Numeros { 
 public int num1; 
2 
 
 public int num2; 
 public int num3; 
 public int num4; 
 
 public Numeros() {} 
 public void imprime(int a, int b){ 
 num1 = a; 
 num2 = b; 
 System.out.print (num1 + " " + num2 ); 
 } 
 public void imprime(int x, int f, int s){ 
 num1 = x; 
 num2 = f; 
 num3 = s; 
 System.out.print (num1 + " " + num2 + " " + num3 ); 
 } 
 public void imprime(int m, int n, int o, int p){ 
 num1 = m; 
 num2 = n; 
 num3 = o; 
 num4 = p; 
 System.out.print (num1 + " " + num2 + " " + num3 + " " + num4 ); 
 } 
} 
 
 
Interfaces 
 
Interface é um recurso da orientação a objeto utilizado em Java que define ações que devem ser 
obrigatoriamente executadas, mas que cada classe pode executar de forma diferente. 
 
Interfaces contém valores constantes ou assinaturas de métodos que devem ser implementados dentro de 
uma classe. 
 
E por que isso? 
 
Isso se deve ao fato que muitos objetos (classes) podem possuir a mesma ação (método), porém, podem 
executá-la de maneira diferente. 
 
Usando um exemplo bem drástico, podemos ter uma interface chamada aéreo que possui a assinatura do 
método voar(). Ou seja, toda classe que implementar aéreo deve dizer como voar(). 
 
Portanto, se eu tenho uma classe chamada pássaro e outra chamada avião, ambas implementando a interface 
aéreo, então, nestas duas classes devemos codificar a forma como cada um irá voar(). 
 
Uma interface é criada da mesma forma que uma classe, mas utilizando a palavra-chave interface no lugar 
declass. 
 
interface nomeDaInterface { 
 métodoAbstrato (argumentos); 
} 
 
3 
 
Usando uma Interface em uma Classe 
 
Como vimos anteriormente, uma classe pode extender suas funcionalidades obtendo as características de 
outra classe num processo que chamamos de herança. Uma interface não é herdada, mas 
sim, implementada. Porque todo o código dos métodos da interface deve ser escrito dentro da classe que o 
chama. Dessa forma, obtemos as assinaturas dos métodos da interface em uma classe usando a palavra-
chave implements. 
 
A vantagem principal das interfaces é que não há limites de quantas interfaces uma classe pode implementar. 
O que ajuda no caso de heranças múltiplas que não é possível ser feito em Java, pois uma classe apenas pode 
herdar as características de uma outra classe. 
 
Resumindo 
 
Uma interface em Java é uma espécie de classe, com as seguintes propriedades: 
 
 Não pode ser instanciável (não podemos criar objetos com new); 
 Só pode possuir assinaturas de métodos de instância, públicos e abstratos (sem corpo). 
 Não pode possuir métodos concretos (com corpo), nem métodos estáticos. 
 Os prefixos abstract e public podem ser usados, mas são em geral omitidos; 
 Não pode conter variáveis de instância ou de classe (static); 
 Pode conter declarações de constantes (com prefixo final e inicializadas para um valor) – nesse caso 
essa variável funcionará como uma constante de classe. 
 O prefixo static possa ser usado, mas é em geral omitido; 
 Pode ser criada como subinterface de outra interface já existente, usando extends, como as classes. 
 
Para criar interfaces usamos uma sintaxe parecida com a das classes, substituindo a palavra class por 
interface: 
 
Exemplo1: 
 
package entity; 
 
public interface FolhaPagamento { 
 
 final float PERCINSS = 8.5f; 
 final float PERCIRRF = 3.5f; 
 
 public void calculaInss(); 
 public void calculaIrrf(); 
 public void calculaSalarioLiquido(); 
 
} 
 
 
 
 
 
4 
 
 
 
 
 
package programas; 
 
import entity.FolhaPagamento; 
import java.awt.Container; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import static javax.swing.JFrame.EXIT_ON_CLOSE; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 
 
public class CalculoContraCheque extends JFrame implements FolhaPagamento { 
 
 private JLabel lblSalario; 
 private JLabel lblInss; 
 private JLabel lblImpostoRenda; 
 private JLabel lblSalarioLiquido; 
 private JTextField txtSalario; 
 private JTextField txtInss; 
 private JTextField txtImpostoRenda; 
 private JTextField txtSalarioLiquido; 
 private JButton btnCalcula; 
 public float vlrSalario; 
 public float vlrInss; 
 public float vlrIrrf; 
 public float vlrSalarioLiquido; 
 
 public CalculoContraCheque() { 
 setSize(500, 300); 
 setVisible(true); 
 setDefaultCloseOperation(EXIT_ON_CLOSE); 
 } 
5 
 
 
 public void montaTela() { 
 
 Container painel = getContentPane(); 
 painel.setLayout(null); 
 
 lblSalario = new JLabel("Salario:"); 
 txtSalario = new JTextField(20); 
 lblSalario.setBounds(50, 40, 100, 20);//coluna, linha, largura, altura 
 txtSalario.setBounds(150, 40, 200, 25);//coluna, linha, largura, altura 
 
 lblInss = new JLabel("Inss:"); 
 txtInss = new JTextField(5); 
 txtInss.setEditable(false); 
 lblInss.setBounds(50, 70, 100, 20);//coluna, linha, largura, altura 
 txtInss.setBounds(150, 70, 200, 25);//coluna, linha, largura, altura 
 
 lblImpostoRenda = new JLabel("Imposto Renda:"); 
 txtImpostoRenda = new JTextField(5); 
 txtImpostoRenda.setEditable(false); 
 lblImpostoRenda.setBounds(50, 100, 100, 20);//coluna, linha, largura, altura 
 txtImpostoRenda.setBounds(150, 100, 200, 25);//coluna, linha, largura, altura 
 
 lblSalarioLiquido= new JLabel("Salário Líquido:"); 
 txtSalarioLiquido = new JTextField(5); 
 txtSalarioLiquido.setEditable(false); 
 lblSalarioLiquido.setBounds(50, 130, 100, 20);//coluna, linha, largura, altura 
 txtSalarioLiquido.setBounds(150, 130, 200, 25);//coluna, linha, largura, altura 
 
 btnCalcula = new JButton("Calcular"); 
 btnCalcula.setBounds(190, 200, 100, 20);//coluna, linha, largura, altura 
 
 painel.add(lblSalario); 
 painel.add(txtSalario); 
 painel.add(lblInss); 
 painel.add(txtInss); 
 painel.add(lblImpostoRenda); 
 painel.add(txtImpostoRenda); 
 painel.add(lblSalarioLiquido); 
 painel.add(txtSalarioLiquido); 
 painel.add(btnCalcula); 
 
 btnCalcula.addActionListener(new CalculaContraCheque()); 
 } 
 
 public static void main(String[] args) { 
 CalculoContraCheque calculo = new CalculoContraCheque(); 
 calculo.montaTela(); 
 } 
} 
 
 
 
 
6 
 
Exemplo2: 
 
 
 
 
 
 
 
 
package entity; 
 
public interface FolhaPagamentoII { 
 
 final float DESCONTOPADRAOIRRF = 10f; 
 final float PERCIRRF = 3.5f; 
 
 public void calculaSalario(); 
 public void calculaInss(); 
 public void calculaIrrf(); 
 public void calculaSalarioLiquido(); 
} 
 
package programas; 
 
import java.awt.Container; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
7 
 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import static javax.swing.JFrame.EXIT_ON_CLOSE; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 
 
public class CalculoContraChequeII extends JFrame { 
 
 private JLabel lblSalario; 
 private JLabel lblVendas; 
 private JLabel lblQtdeHoras; 
 private JLabel lblTipoFolha; 
 private JTextField txtSalario; 
 private JTextField txtVendas; 
 private JTextField txtQtdeHoras; 
 private JTextField txtTipoFolha; 
 private JButton btnCalcula; 
 public float vlrSalario; 
 public float vlrVendas; 
 public float vlrIrrf; 
 int qtdeHoras; 
 int tipoFolha; 
 
 public CalculoContraChequeII() { 
 setSize(500, 300); 
 setVisible(true); 
 setDefaultCloseOperation(EXIT_ON_CLOSE); 
 } 
 
 public void montaTela() { 
 
 Container painel = getContentPane(); 
 painel.setLayout(null); 
 
 lblSalario = new JLabel("Salario:"); 
 txtSalario = new JTextField(20); 
 lblSalario.setBounds(50, 40, 100, 20);//coluna, linha, largura, altura 
 txtSalario.setBounds(150, 40, 200, 25);//coluna, linha, largura, altura 
 
 lblVendas = new JLabel("Vendas:"); 
 txtVendas = new JTextField(5); 
 lblVendas.setBounds(50, 70, 100, 20);//coluna, linha, largura, altura 
 txtVendas.setBounds(150, 70, 200, 25);//coluna, linha, largura, altura 
 
 lblQtdeHoras = new JLabel("Qtde Horas:"); 
 txtQtdeHoras = new JTextField(5); 
 lblQtdeHoras.setBounds(50, 100, 100, 20);//coluna, linha, largura, altura 
 txtQtdeHoras.setBounds(150, 100, 200, 25);//coluna, linha, largura, altura 
 
 lblTipoFolha = new JLabel("Tipo Folha:"); 
 txtTipoFolha = new JTextField(5); 
 lblTipoFolha.setBounds(50, 130, 100, 20);//coluna, linha, largura, altura 
 txtTipoFolha.setBounds(150, 130, 200, 25);//coluna, linha, largura, altura 
 
 btnCalcula = new JButton("Calcular"); 
8 
 
 btnCalcula.setBounds(190, 200, 100, 20);//coluna, linha, largura, altura 
 
 painel.add(lblSalario); 
 painel.add(txtSalario); 
 painel.add(lblVendas); 
 painel.add(txtVendas); 
 painel.add(lblQtdeHoras); 
 painel.add(txtQtdeHoras); 
 painel.add(lblTipoFolha); 
 painel.add(txtTipoFolha); 
 painel.add(btnCalcula); 
 
 btnCalcula.addActionListener(new SelecionaCalculo()); 
 } 
 
 public class SelecionaCalculo implements ActionListener { 
 
 @Override 
 public void actionPerformed(ActionEvent e) { 
 tipoFolha = Integer.parseInt(txtTipoFolha.getText()); 
 vlrSalario = Float.parseFloat(txtSalario.getText()); 
 vlrVendas = Float.parseFloat(txtVendas.getText()); 
 qtdeHoras = Integer.parseInt(txtQtdeHoras.getText()); 
 
 if (tipoFolha == 1) { 
 CalculoProfessor prof = new CalculoProfessor(25.55f, qtdeHoras); 
 prof.calculaSalario(); 
 } else if (tipoFolha == 2) { 
 CalculoVendedor vend = new CalculoVendedor(vlrSalario, vlrVendas); 
 vend.calculaSalario(); 
 } 
 
 } 
 } 
 
 public static void main(String[] args) { 
 CalculoContraChequeII calculo = new CalculoContraChequeII(); 
 calculo.montaTela(); 
 } 
} 
 
 
package programas; 
 
import entity.FolhaPagamentoII; 
import javax.swing.JOptionPane; 
 
public class CalculoProfessor implements FolhaPagamentoII { 
 
} 
 
 
 
package programas; 
9 
 
 
import entity.FolhaPagamentoII; 
import javax.swing.JOptionPane; 
 
public class CalculoVendedor implements FolhaPagamentoII { 
 
 }

Outros materiais