12.07.2015 Views

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ENCAPSULAMENTO 74vezes, não é correto chamar esses métodos auxiliares <strong>de</strong> fora da sua classe diretamente.No exemplo abaixo, o método <strong>de</strong>scontaTarifa() é um método auxiliar dos métodos <strong>de</strong>posita()e saca(). Além disso, ele não <strong>de</strong>ve ser chamado diretamente, pois a tarifa só <strong>de</strong>ve ser <strong>de</strong>scontadaquando ocorre um <strong>de</strong>pósito ou um saque.1 class Conta {2 private double saldo ;34 void <strong>de</strong>posita ( double valor ) {5 this . saldo += valor ;6 this . <strong>de</strong>scontaTarifa ();7 }89 void saca ( double valor ) {10 this . saldo -= valor ;11 this . <strong>de</strong>scontaTarifa ();12 }1314 void <strong>de</strong>scontaTarifa () {15 this . saldo -= 0.1;16 }17 }Código Java 7.3: Conta.javaPara garantir que métodos auxiliares não sejam chamados por código escrito fora da classe naqual eles foram <strong>de</strong>finidos, po<strong>de</strong>mos torná-los privados, acrescentando o modificador private.1 private void <strong>de</strong>scontaTarifa () {2 this . saldo -= 0.1;3 }Código Java 7.4: Método privado <strong>de</strong>scontaTarifa()Qualquer chamada ao método <strong>de</strong>scontaTarifa() realizada fora da classe Conta gera um erro <strong>de</strong>compilação.Métodos PúblicosOs métodos que <strong>de</strong>vem ser chamados a partir <strong>de</strong> qualquer parte do sistema <strong>de</strong>vem possuir omodificador <strong>de</strong> visibilida<strong>de</strong> public.1 class Conta {2 private double saldo ;34 public void <strong>de</strong>posita ( double valor ) {5 this . saldo += valor ;6 this . <strong>de</strong>scontaTarifa ();7 }89 public void saca ( double valor ) {10 this . saldo -= valor ;11 this . <strong>de</strong>scontaTarifa ();12 }1314 private <strong>de</strong>scontaTarifa (){15 this . saldo -= 0.1;16 }17 }74 www.<strong>k19</strong>.com.br

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!