Modificadores

editar

Modificadores de acesso

editar

Os modificadores de acesso são palavras-chave que modificam a forma como podem ser acessadas as classes, métodos e/ou variáveis.

Modificador de acesso private

editar

O modificador de acesso "private" quando aplicado a um atributo ou a um método indica que os mesmos só podem ser acessados de dentro da classe que os criou (encapsulamento). Uma classe que herde de uma superclasse com atributos declarados como "private" só poderá ter acesso a eles através dos métodos públicos da própria superclasse, caso contrário, não haverá acesso a estes atributos.

Exemplo

class Circulo
{    
    private float raio;
    Circulo()
       {
          super();
          setRaio( 3.0 );
       }
    void setRaio( float r )
       {
          raio = r
       }
}
class Pneu extends Circulo
{
    Pneu p = new Pneu();
    p.raio = 10.0; //Erro de compilação. O Atributo raio é privado da classe Circulo
    p.setRaio(10.0); //Correto, pois a classe Pneu está utilizando os métodos definidos na classe Circulo para fazer
                     //acesso ao atributo privado raio 
}

Modificador de acesso protected

editar
A instrução protected indica que o método ou a variável assim declarada possa ser acessada somente dentro do pacote em que está contida através de uma subclasse.

Modificador de acesso public

editar
A instrução public indica que a classe, método ou variável assim declarada possa ser acessada em qualquer lugar e a qualquer momento da execução do programa.

Friendly

editar

Sem modificador de acesso, o membro da classe é considerado friendly. Não há uma palavra-chave para esse modificador.

Outros modificadores

editar

Os modificadores a seguir podem ser usados em conjunto com os modificadores de acesso provendo, assim, outros comportamentos:

Modificador de acesso static

editar
A palavra reservada static serve:
  • na declaração de uma variável dentro de uma classe, para se criar uma variável que será compartilhada por todas as instâncias de objetos de uma classe como um variável comum. Ou seja, a variável criada será a mesma em todas instâncias e quando seu conteúdo é modificado em uma das instâncias então ele será modificado em todas instâncias;
  • na declaração de um método que deve ser acessado diretamente na classe e não nas suas instâncias.

Modificador abstract

editar
A instrução abstract serve para:
  • declarar métodos abstratos, ou seja, métodos que deverão ser desenvolvidos/implementados nas subclasses. Quando a classe que contiver métodos abstratos for herdada, os referidos métodos deverão ser implementados, caso contrário, a classe que extendeu deverá ser declarada como abstrata.
  • declarar classes abstratas que se desenvolvem numa(s) subclasse(s). Classes abstratas são aquelas que não estão totalmente implementadas/descritas. Uma classe abstrata não pode ser instanciada e é amplamente usada nas interfaces.
  • Uma classe é considerada abstrata se contiver pelo menos um método abstrato. Um método abstrato tem a seguinte característica: void getName( );
  • Caso o método tenha as chaves características {}, o mesmo não mais será considerado abstrato, embora não tenha código dentro das chaves.

Modificador final

editar
A instrução final indica que a classe, método ou variável assim declarada têm uma única atribuição que se mantém constante, ou seja, não pode ser alterada no decorrer do processamento.
Além de não admitir a criação de classes filhas.
Este modificador declara o que chamamos, em programação, de constante.