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
, ouprotegido
) 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.
Vamos ver o que acontece com 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
UseAccoun
t é classe na mesma embalagem como aConta
classe. - o
UseAccount
classe pode criar uma variável do tipoConta
. - o
UseAccount
código de classe pode referir-se ao públiconome do cliente
campo doConta
classe e para o padrãoendereço
campo doConta
classe. - o
UseAccount
classe não pode se referir ao privadointernalIdNumber
campo doConta
classe, emboraUseAccount
eConta
estão no mesmo pacote. - o
UseAccountFromOutside
classe não está no mesmo pacote que oConta
classe. - o
UseAccountFromOutside
classe pode criar uma variável do tipoConta
. (Aimportar
declaração impede você de ter de repetir o totalmente qualificadocom.allyourcode.bank.Account
nome em toda parte no código.) - o
UseAccountFromOutside
código de classe pode referir-se ao públiconome do cliente
campo doConta
classe. - o
UseAccountFromOutside
código de classe não pode se referir ao padrãoendereço
campo doConta
classe ou para o privadointernalIdNumber
campo doConta
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.
Vamos ver o que acontece com 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 aduende
classe. - o
UseSprite
classe pode criar uma variável do tipoduende
. - o
UseSprite
código de classe pode referir-se ao públiconome
campo doduende
classe e para o padrãodistanceFromTop
campo doduende
classe. - o
UseSprite
classe não pode se referir ao privadorenderingValue
campo doduende
classe, emboraUseSprite
eduende
estão no mesmo pacote. - o
UseSpriteFromOutside
classe não está no mesmo pacote que oduende
classe. - o
UseSpriteFromOutside
classe não pode criar uma variável do tipoduende
. (Nem mesmo umimportar
declaração pode salvá-lo de uma mensagem de erro aqui.) - Dentro de
UseAccountFromOutside
classe, referências asprite.name, sprite.distanceFromTop
, esprite.renderingValue
são tudo sem sentido, porque oduende
variável não tem um tipo.