Arquivo

Archive for dezembro \23\UTC 2010

Acesso a Classes

Quando dizemos que o código de uma classe (a classe A) tem acesso a outra (classe B), isso significa que a classe A pode fazer as seguintes coisas:

  • Criar uma instância da classe B.
  • Estender a classe B.
  • Acessar certos métodos e variáveis da classe B, dependendo do controle de acesso desses métodos e variáveis.

Na prática,acesso significa visibilidade. Se a classe A não puder ver a classe B, a classe A não terá acesso a classe B.

Acesso Default: Esse é o controle de acesso que voçê obtem quando não declara nenhum modificador de acesso. Pense no acesso default como um acesso de nível de pacote, pois a classe com acesso default só pode ser vista por classes que pertencem ao mesmo pacote.


package passoFundo;

class Upf {  }

Agora observe o seguinte código fonte:


package java.scjp

import passoFundo.Upf;

class LagoaVermelha extends Upf {  }

Como voçê pode ver (Upf) está em um pacote diferente da subclasse (LagoaVermelha). A declaração de import está tentando importar a classe Upf. O arquivo Upf compila sem problemas, já o arquivo LagoaVermelha ao tentar´mo compilar vamos obter algo como:


 Can´t access class passoFundo.Upf. Class or interface must be 
public, in same package, or 	an accessible member class.

 import passoFundo.Upf;

LagoaVermelha não compila porque a sua superclasse, Upf, tem acesso default e está em um pacote diferente. Para arrumar isso pode colocar a classe LagoaVermelha no mesmo pacote ou declarar Upf como public.

Acesso Público: Uma declaração public permite que qualquer classe do projeto pode ver e acessar essa classe, mas não esqueça, voçê ainda precisará importar a classe.

Anúncios
Categorias:Java, SCJP Tags:, ,

Declaração e Modificadores de Classes


class  MinhaClasseCampeiraTche {  }

Este código vai compila sem problemas, mas voçê pode também adicionar modificadores de acesso, eles se dividem em duas categorias:

Modificadores de Acesso: public, protected, private.

Modificadores que não se referem a acesso: (strictfp, final e abstract).

Existem quatro controles de acesso (níveis de acesso) mas apenas três modificadores de acesso. O quarto nível de controle de acesso (chamado de acesso default ou de pacote) é o que se tem quando não é usado algum dos outros três modificadores de acesso. Em outras palavras todas as classes e métodos possuem um modificadore de acesso mesmo voçê declarando ou não. Embora todos os quatro controles de acesso (o que significa três modificadores de acesso).