Programação com java: acesso para campos e métodos em seu aplicativo android

Você pode definir o acesso para os campos e métodos em seu aplicativo Android. Uma classe Java pode ter um acesso público ou acesso não públicas (padrão). Mas um membro de uma classe tem quatro possibilidades: público, privado, padrão e protegidas.

campos e métodos de uma classe são membros da classe.

Veja como o acesso de membros funciona:

  • Um membro padrão de uma classe (um membro cuja declaração não contém as palavras público, privado, ou protegido) Pode ser usado por qualquer código no interior do mesmo pacote que essa classe.
  • Um membro privado de uma classe não pode ser usada em qualquer código fora da classe.
  • Um membro do público de uma classe pode ser usado sempre que a própria classe pode ser utilizado- que é:
  • Qualquer programa em qualquer pacote pode se referir a um membro do público de uma classe pública.
  • Para um programa para fazer referência a um membro do público de uma classe de acesso padrão, o programa deve estar dentro do mesmo pacote que a classe.

Para ver essas regras em ação, confira a classe pública neste código.

com.allyourcode.bank- pacote

público Conta classe {

público Cordas customerName-

privado int internalIdNumber-

Endereço- corda

Phone-corda

público int socialSecurityNumber-

int accountType-

double balance-

Video: Como criar APLICATIVOS para Android, iPhone e Java ( Sem entender de Programação )

público static int findById (int internalIdNumber) {

foundAccount Conta = new conta () -

// Código para encontrar a conta vai aqui.

voltar foundAccount.internalIdNumber-

}

}

O código usa a Conta classe e seus campos.

Programação Java-for-android-developers-2e-público de classe
Referindo-se a uma classe pública no mesmo pacote.


Vamos ver o que acontece com um pacote diferente.

Programação Java-for-android-developers-2e-público-class-diferente-package
Referindo-se a uma classe pública em um pacote diferente.

As mensagens de erro apontar para alguns problemas com o código. Aqui está uma lista de fatos sobre estes dois pedaços de código:

  • o UseAccount é classe na mesma embalagem como a Conta classe.
  • o UseAccount classe pode criar uma variável do tipo Conta.
  • o UseAccount código de classe pode referir-se ao público nome do cliente campo do Conta classe e para o padrão endereço campo do Conta classe.
  • o UseAccount classe não pode se referir ao privado internalIdNumber campo do Conta classe, embora UseAccount e Conta estão no mesmo pacote.
  • o UseAccountFromOutside classe não está no mesmo pacote que o Conta classe.
  • o UseAccountFromOutside classe pode criar uma variável do tipo Conta. (A importar declaração impede você de ter de repetir o totalmente qualificado com.allyourcode.bank.Account nome em toda parte no código.)
  • o UseAccountFromOutside código de classe pode referir-se ao público nome do cliente campo do Conta classe.
  • o UseAccountFromOutside código de classe não pode se referir ao padrão endereço campo do Conta classe ou para o privado internalIdNumber campo do Conta classe.

Agora examine a classe não públicas neste código.

com.allyourcode.game- pacote

classe Sprite {

público nome- corda

imagem- corda

double distanceFromLeftEdge, distanceFromTop-

double motionAcross, motionDown-

privado int renderingValue-

anular a render () {

se (renderingValue == 2) {

// do stuff aqui

}

}

}

O código usa a duende classe e seus campos.

Programação Java-for-android-developers-2e-default-access-class
Referindo-se a uma classe de acesso padrão no mesmo pacote.

Vamos ver o que acontece com um pacote diferente.

Programação Java-for-android-developers-2e-default-access-class-diferente-package
Referindo-se a uma classe de acesso padrão em um pacote diferente.

As mensagens de erro nessas imagens apontam para alguns problemas com o código. Aqui está uma lista de fatos sobre estes dois pedaços de código:

  • o UseSprite classe é na mesma embalagem como a duende classe.
  • o UseSprite classe pode criar uma variável do tipo duende.
  • o UseSprite código de classe pode referir-se ao público nome campo do duende classe e para o padrão distanceFromTop campo do duende classe.
  • o UseSprite classe não pode se referir ao privado renderingValue campo do duende classe, embora UseSprite e duende estão no mesmo pacote.
  • o UseSpriteFromOutside classe não está no mesmo pacote que o duende classe.
  • o UseSpriteFromOutside classe não pode criar uma variável do tipo duende. (Nem mesmo um importar declaração pode salvá-lo de uma mensagem de erro aqui.)
  • Dentro de UseAccountFromOutside classe, referências a sprite.name, sprite.distanceFromTop, e sprite.renderingValue são tudo sem sentido, porque o duende variável não tem um tipo.

Publicações relacionadas