Programação Orientada a Objetos Linguagem Java – Encapsulamento Professor Antonio Dinis JAVA – ENCAPSULAMENTO Na linguagem de programação Java, a classe é o alicerce para o encapsulamento, o qual é definido como uma técnica que faz com que os atributos da classe permaneçam ocultos, pois desta forma, eles podem ser lidos e alterados somente pelos métodos da própria classe. Por conta desta técnica, o conhecimento a respeito da implementação interna da classe é desnecessário, uma vez que isso passa a ser responsabilidade dos métodos internos da classe. Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes. Tendo em vista que os métodos e as variáveis de uma classe podem ser definidos como públicos ou privados, temos as seguintes situações: 1. Tudo que o usuário externo precisa conhecer a respeito de uma classe encontrase em sua interface pública; 2. Somente os códigos membros das classes são capazes de acessar seus métodos e variáveis privadas. Isso garante que não ocorram ações inadequadas, mas exige que a interface pública seja planejada com cautela para que o funcionamento interno da classe não seja muito exposto. Programação Orientada a Objetos Linguagem Java – Encapsulamento Professor Antonio Dinis Situação 1: package oo; public class TelefoneAcessoDireto { String modelo; String numero; double custoMinuto; double creditoInicial; public static void main(String args []){ TelefoneAcessoDireto telefone = new TelefoneAcessoDireto(); telefone.modelo = "3g"; telefone.numero ="9999-9999"; telefone.custoMinuto = 1.50; telefone.creditoInicial = 15.00; System.out.println("Modelo............"+telefone.modelo); System.out.println("Numero............"+telefone.numero); System.out.println("Custo por Minuto.."+telefone.custoMinuto); System.out.println("Modelo............"+telefone.creditoInicial); } } Programação Orientada a Objetos Linguagem Java – Encapsulamento Professor Antonio Dinis Situação 2: package oo; public class TelefonePublico { String modelo; String numero; double custoMinuto; double creditoInicial; } package oo; /** * * @author antoniod */ import javax.swing.JOptionPane; public class TelefoneAcessoPublico { public static void main(String args[]){ TelefonePublico telefonePublico = new TelefonePublico(); telefonePublico.modelo = JOptionPane.showInputDialog(null, "Entre com o Modelo"); telefonePublico.numero = JOptionPane.showInputDialog(null, "Entre com o Número"); telefonePublico.custoMinuto = Double.parseDouble(JOptionPane.showInputDialog(null,"Entre com o custo por minuto")); telefonePublico.creditoInicial = Double.parseDouble(JOptionPane.showInputDialog(null,"Entre com o crédito inicial")); if (telefonePublico.custoMinuto < 0) telefonePublico.custoMinuto = 0; if (telefonePublico.creditoInicial < 0) telefonePublico.creditoInicial =0; JOptionPane.showMessageDialog(null, "O modelo digitado foi "+telefonePublico.modelo); JOptionPane.showMessageDialog(null, "O número digitado foi "+telefonePublico.numero); JOptionPane.showMessageDialog(null, "O custo por minuto é de "+telefonePublico.custoMinuto); JOptionPane.showMessageDialog(null, "O crédito inicial é de "+telefonePublico.creditoInicial); } } Programação Orientada a Objetos Linguagem Java – Encapsulamento Professor Antonio Dinis Situação 3: package oo; public class TelefoneParticular { private String modelo; private String numero; private double custoMinuto; private double creditoInicial; public void setCreditoInicial(double creditoInicial) { if (creditoInicial < 0) this.creditoInicial = 0; else this.creditoInicial = creditoInicial; } public void setCustoMinuto(double custoMinuto) { if (custoMinuto < 0) this.custoMinuto = 0; else this.custoMinuto = custoMinuto; } public void setModelo(String modelo) { this.modelo = modelo; } public void setNumero(String numero) { this.numero = numero; } public double getCreditoInicial() { return creditoInicial; } public double getCustoMinuto() { return custoMinuto; } public String getModelo() { return modelo; } public String getNumero() { return numero; } } Programação Orientada a Objetos Linguagem Java – Encapsulamento Professor Antonio Dinis package oo; import javax.swing.JOptionPane; public class TelefoneAcessoParticular { public static void main(String args[]){ TelefoneParticular telefoneParticular = new TelefoneParticular(); telefoneParticular.setModelo(JOptionPane.showInputDialog(null, "Entre com o Modelo")); telefoneParticular.setNumero(JOptionPane.showInputDialog(null, "Entre com o Número")); telefoneParticular.setCustoMinuto(Double.parseDouble(JOptionPane.showInputDialog(null,"Entre com o custo por minuto"))); telefoneParticular.setCreditoInicial(Double.parseDouble(JOptionPane.showInputDialog(null,"Entre com o crédito inicial"))); JOptionPane.showMessageDialog(null, "O modelo digitado foi "+telefoneParticular.getModelo()); JOptionPane.showMessageDialog(null, "O número digitado foi "+telefoneParticular.getNumero()); JOptionPane.showMessageDialog(null, "O custo por minuto é de" +telefoneParticular.getCustoMinuto()); JOptionPane.showMessageDialog(null, "O crédito inicial é de" +telefoneParticular.getCreditoInicial()); } }