Programación con java: el acceso a los campos y los métodos de su aplicación para android
Video: 28.- Curso de Java. Crear aplicaciones Multitarea con el uso de Threads
Puede configurar el acceso de los campos y métodos de su aplicación para Android. Una clase Java puede tener ya sea de acceso público o el acceso no pública (por defecto). Sin embargo, un miembro de una clase tiene cuatro posibilidades: pública, privada, por defecto, y protegidos.
campos y métodos de la clase A son miembros de la clase.
He aquí cómo funciona el acceso de miembros:
- Un miembro predeterminado de una clase (un miembro cuya declaración no contiene las palabras
público
,privado
, oprotegido
) Puede ser utilizado por cualquier código dentro del mismo paquete que esa clase. - Un miembro privado de una clase no se puede utilizar en cualquier código fuera de la clase.
- Un miembro del público de una clase se puede utilizar siempre la clase en sí puede ser utiliza- es decir:
- Cualquier programa en cualquier paquete se puede referir a un miembro del público de una clase pública.
- Para un programa para hacer referencia a un miembro de una clase pública de acceso por defecto, el programa debe estar dentro del mismo paquete que la clase.
Para ver estas reglas en acción, echa un vistazo a la clase pública en este código.
com.allyourcode.bank- paquete
público Cuenta la clase {
público cadena customerName-
privado int internalIdNumber-
Dirección- cuerdas
teléfono-string
público int socialSecurityNumber-
int accountType-
doble balanza
público static int findById (int internalIdNumber) {
Cuenta foundAccount = nueva cuenta () -
// código para encontrar la cuenta va aquí.
volver foundAccount.internalIdNumber-
}
}
El código utiliza el Cuenta
clase y sus campos.
Vamos a ver lo que sucede con un paquete diferente.
Los mensajes de error indican con el código de algunas dificultades. He aquí una lista de hechos acerca de estas dos piezas de código:
- los
UseAccoun
t es la clase en el mismo paquete que elCuenta
clase. - los
UseAccount
clase puede crear una variable de tipoCuenta
. - los
UseAccount
código de clase puede referirse al públicoNombre del cliente
Campo de laCuenta
clase y en el valor predeterminadodirección
Campo de laCuenta
clase. - los
UseAccount
clase no se puede referir a lo privadointernalIdNumber
Campo de laCuenta
clase, aunqueUseAccount
yCuenta
están en el mismo paquete. - los
UseAccountFromOutside
clase no está en el mismo paquete que elCuenta
clase. - los
UseAccountFromOutside
clase puede crear una variable de tipoCuenta
. (Unimportar
declaración le evita tener que repetir el completocom.allyourcode.bank.Account
nombre en todas partes en el código.) - los
UseAccountFromOutside
código de clase puede referirse al públicoNombre del cliente
Campo de laCuenta
clase. - los
UseAccountFromOutside
código de clase no puede referirse a los valores predeterminadosdirección
Campo de laCuenta
clase o al privadointernalIdNumber
Campo de laCuenta
clase.
Ahora examine la clase no pública en este código.
com.allyourcode.game- paquete
clase Sprite {
público Nombre cadena
imagen- cuerdas
doble distanceFromLeftEdge, distanceFromTop-
doble motionAcross, motionDown-
privado int renderingValue-
Video: 01.- Curso Desarrollo Aplicaciones Android. Configurar Entorno de Desarrollo
anulará render () {
si (renderingValue == 2) {
// hacer cosas aquí
}
}
}
El código utiliza el Duende
clase y sus campos.
Vamos a ver lo que sucede con un paquete diferente.
Los mensajes de error en estas imágenes apuntan a con el código de algunas dificultades. He aquí una lista de hechos acerca de estas dos piezas de código:
- los
UseSprite
clase está en el mismo paquete que elDuende
clase. - los
UseSprite
clase puede crear una variable de tipoDuende
. - los
UseSprite
código de clase puede referirse al públiconombre
Campo de laDuende
clase y en el valor predeterminadodistanceFromTop
Campo de laDuende
clase. - los
UseSprite
clase no se puede referir a lo privadorenderingValue
Campo de laDuende
clase, aunqueUseSprite
yDuende
están en el mismo paquete. - los
UseSpriteFromOutside
clase no está en el mismo paquete que elDuende
clase. - los
UseSpriteFromOutside
clase no puede crear una variable de tipoDuende
. (Ni siquiera unaimportar
declaración puede salvarlo de un mensaje de error aquí.) - Dentro de
UseAccountFromOutside
clase, las referencias asprite.name, sprite.distanceFromTop
, ysprite.renderingValue
son todos de sentido porque laduende
variable no tiene un tipo.