AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

Encapsulamento (public, private e protected)


Encapsulamento (public, private e protected)

Encapsulamento
      Se outros programadores usam nossa classe, nós queremos garantir que erros pelo mau uso não ocorram. Encapsulamento serve para controlar o acesso aos atributos e métodos de uma classe.

        É uma forma eficiente de proteger os dados manipulados dentro da classe, além de determinar onde esta classe poderá ser manipulada.

         Usamos o nível de acesso mais restritivo que faça sentido para um membro particular. Sempre usamos private, a menos que tenhamos um bom motivo para deixá-lo com outro nível de acesso.

         Não devemos permitir o acesso público aos membros, exceto em caso de ser constantes. Isso porque membros públicos tendem a nos ligar a uma implementação em particular e limita a nossa flexibilidade em mudar o código.

Basicamente, usamos quatro tipos de encapsulamento que são divididos em dois níveis:


  • Nível de classe ou topo: Quando determinamos o acesso de uma classe inteira que pode ser public oupackage-private (padrão);
  • Nível de membro: Quando determinamos o acesso de atributos ou métodos de uma classe que podem serpublic, private, protected ou package-private (padrão).

        Para utilizarmos estes modificadores de acesso, basta que nós os digitemos antes do nome da variável, atributo, método, função ou classe, com exceção de package-private, que é entendido como padrão, portanto, é qualquer membro ou classe que não tenha modificador especificado.

Exemplo:
1.public class MinhaClasse {    //classe public
2.            private int inteiro;      //atributo inteiro private
3.            protected float decimal;  //atributo float protected
4.            boolean ativado;          //atributo booleano package-private
5.}

Public
     O modificador public deixará visível a classe ou membro para todas as outras classes, subclasses e pacotes do projeto Java.

Private
      O modificador private deixará visível o atributo apenas para a classe em que este atributo se encontra.

Protected
    O modificador protected deixará visível o atributo para todas as outras classes e subclasses que pertencem ao mesmo pacote. A principal diferença é que apenas as classes do mesmo pacote tem acesso ao membro. O pacote da subclasse não tem acesso ao membro.

Sem Modificador (Padrão)
      Por padrão, a linguagem Java permite acesso aos membros apenas ao pacote em que ele se encontra.

De forma ilustrativa, abaixo está uma tabela demonstrando todas estas características.



Modificador
Classe
Pacote
Subclasse
Globalmente
Public
sim
sim
sim
sim
Protected
sim
sim
sim
não
Sem Modificador (Padrão)
sim
sim
não
não
Private
sim
não
não
não

Fonte: http://www.tiexpert.net/programacao/java/public-private-protected.php. Acessado em 24/10/2012 às 00:10.

Nenhum comentário:

Postar um comentário