Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Programação em Java
Encapsulamento
Herança (Generalização/Especialização)
Polimorfismo
2/27
Encapsulamento
Separa a
interface de um
objeto dos
detalhes de seu
funcionamento
interno
3/27
Encapsulamento
4/27
Encapsulamento
5/27
Encapsulamento
6/27
Interface
7/27
Interface
8/27
Exemplo Encapsulamento
Telefone
interface pública- botões utilizados para interagir com
o objeto
implementação - as operações internas, o propósito
do objeto
Carro
interfaces
públicas - pedais, direção, câmbio
implementação - o funcionamento do carro
9/27
Encapsulamento em Java - Métodos
de acesso
10/27
Métodos de acesso
11/27
Encapsulamento em Java - Métodos
modificadores
12/27
Métodos modificadores
Modificador de
Tipo de retorno (void)
visibilidade
Nome do método Parâmetro
13/27
Exemplo Encapsulamento
class Cliente {
private double credito;
private String nome;
15/27
Vantagens do encapsulamento
Reutilização – Uma vez que o componente é independente, ele
pode ser utilizado em diferentes programas com facilidade.
16/27
Exemplo
class ProdutoSemEncapsulamento {
public int codigo;
public String nome;
public double preco;
public double desconto_a_vista;
17/27
Exemplo
public static void main(String[] args) {
ProdutoSemEncapsulamento p = new
ProdutoSemEncapsulamento();
p.codigo = 1;
p.nome = "Samsung 17 polegadas";
p.preco = 500;
p.desconto_a_vista = 10;
18/27
Exemplo
19/27
Exemplo
20/27
Encapsulamento
Exercício
Corrija a classe do exemplo anterior (vista abaixo). Esta classe
deverá usar encapsulamento, possuir um construtor, um método
que calcula o preço a vista bem como um método setDesconto,
que recebe o valor do desconto, e se o mesmo for superior a
100 ou menor que zero, configurar o desconto como zero.
class ProdutoSemEncapsulamento {
public int codigo;
public String nome;
public double preco;
public double desconto_a_vista;
}
21/27
Solução
class Produto {
private int codigo;
private String nome;
private double preco;
private double desconto_a_vista;
22/27
Solução
public double getPreco() {
return preco;
}
public double getPrecoAVista() {
double preco_a_vista;
preco_a_vista = preco - preco*desconto_a_vista/100;
return preco_a_vista;
}
public void setDesconto(double desc) {
if ((desc > 100) || (desc < 0))
desconto_a_vista = 0;
else
desconto_a_vista = desc;
}
} 23/27
Exercício
Crie uma classe para representar uma conta bancária.
Esta classe deverá:
Usar encapsulamento;
Possuir dois atributos, código e saldo;
Possuir um construtor que receba o número da conta e o saldo
inicial. Se for passado um valor negativo para o saldo,utilizar
zero como saldo inicial;
Possuir métodos para creditar um valor, sacar um valor e
imprimir o saldo.
Se o valor a ser sacado for maior do que o saldo, sacar apenas
o valor correspondente ao saldo (saldo será igual a zero),
retornando o valor sacado em seguida.
24/27
Solução
class Conta {
25/27
Solução
public double debitar(double val) {
if (val > saldo)
val = saldo;
saldo = saldo - val;
return val;
}
public void imprimaSaldo() {
System.out.println(“Conta: “ + numero + “Saldo: R$ “ +
saldo);
}
}
26/27
Encapsulamento
Programação em Java