sexta-feira, 16 de setembro de 2011

Modificadores de Acesso

Bom pessoal, Nesse Post vou falar um pouco sobre um assunto que é muito importante em POO. Trate-se dos Modificadores de Acesso.
Mas o que é um Modificador de Acesso?
Modificadores de Acesso são palavras chaves que definem uma Classe, Método e Variáveis de Instâncias.
Se por um acaso você estiver pensando em Tirar a Certificação Java para Programador (SCJP), é obrigatório que você saiba tudo a respeito sobre esses modificadores.

Eu disse que os modificadores são aplicáveis em Classes, Métodos, e Variáveis de Instância, e coloquei o ultimo em negrito propositalmente, porque uma coisa que confunde bastante é a definição de Variáveis Locais com Variáveis de Instância.

A Regra é simples.
Variáveis Locais: A Variável local é aquela que é declarada dentro do método.
Variáveis de Instância ou Atributos: São aquelas declaradas no escopo da classe


Exemplo.

Public class Carro {
Private String = variávelDeInstancia;    //Variável de Instância
Public String metodoAcelerar() {
Int variavelLocal = 10;              //Variável Local
             }
}

Agora enfim, vamos falar sobre os modificadores de acesso.
Existem 4 modificadores: Public, Private, Protected e Default

Em classes só podemos usar dois dos quatro modificadores (Default  Public)
Em Métodos poderemos usar os 4.

As Regras dos modificadores são bem elaboradas, e isso faz com que fique muito extenso o POST, então, nesse, vou só falar um breve resumo de todos, e em outros POSTS descrevo cada um deles de forma completa.

Então la vai uma Visão Geral sobre eles:

Public: Visível em todas as classes do Projeto, SubClasses (classes que Herdam Membros de outra    superior) tem acesso direto a métodos públicos da superclasse

Private: Só visível a classe ao qual pertence, outras classes e até mesmo subclasses não tem acesso.

Protected: Visível em todo o seu pacote, e nos outros pacotes somente por meio de herança. (Em breve criarei um POST sobre ele, é o Controle de acesso mais complexo)

Default: Visível somente em seu pacote. A diferença entre ele e o Protected está no fato do Defalut mesmo com herança não da acesso ao método, diferentemente do Protected.

Bom a regra básica é essa, mas é legal aprendermos isso vendo exemplos. Portanto me disponho a criar um POST para cada método e explica-los com detalhes.

Existem também outros modificadores, mais não são referentes a acesso como: Final, Abstract, Synchronized entre outros.. falaremos mais sobre eles também.

Bom pessoal é isso, espero ter colaborado um pouco. Em breve voltarei explicando melhor cada modificador.

Valeu Galera.

Nenhum comentário: