Hola qué tal te saluda Ubal lacosta bienvenida y bienvenido nuevamente.
Espero que estén listos para comenzar con esta elección.
A continuación vamos a estudiar el tema de modificadores de acceso en Java.
Estás listo.
Vamos
uso de modificadores de acceso en Java en esta elección.
Vamos a estudiar el tema de modificadores de acceso.
Este tema ya lo vimos de manera introductoria en el curso de Fundamentos de IAVA.
Sin embargo ahora vamos a ver a más detalle este concepto de modificadores de acceso los cuales controlan
quiénes pueden utilizar cada una de las características de las clases que estamos definiendo los modificadores
de acceso se pueden aplicar a la definición de una clase un atributo un método de una clase o al constructor
de una clase.
La tabla muestra las posibles combinaciones de cada uno de los modificadores de acceso y donde se puede
aplicar existen cuatro tipos de modificadores de acceso y la flecha indica el orden de menos restrictivo
a más restrictivo.
Por ejemplo el modificador de acceso públic es el menos restrictivo ya que todas las clases externas
pueden hacer uso del elemento que sea definido como pública y el más restrictivo es Playboy el cual
sólo puede ser accedido por la misma clase donde se ha definido el elemento.
La palabra default opacas no es una palabra reservada en Java a diferencia de Public protected y prohíbe
el uso de default.
Quiere decir que para definir una variable de tipo default o de tipo pakete basta con omitir el modificador
de acceso es decir que si no se especifica ningún modificador de acceso tendrá el valor por default
opacas.
A continuación vamos a ver lo que significa cada uno de estos modificadores
modificador de acceso Public en esta lámina veremos el uso del modificador Public como vimos en la primera
lámina.
El modificador públic aplica para todo tipo de elementos en Java desde una clase un atributo un método
o un constructor.
Este es el modificador de acceso menos restrictivo por lo tanto si deseamos que cualquier otra clase
acceda a nuestro elemento entonces debemos utilizar el modificador de acceso público.
De esta manera cualquier otra clase ya sea dentro del mismo paquete o en uno distinto podrá acceder
al elemento definido como publica en la tabla se indica que si utilizamos este modificador de acceso
la notación dentro del diagrama de clases mostrado se marca el elemento con el símbolo más indicando
que se trata de un elemento de acceso público y como su nombre lo dice al marcarlo como público entonces
todas las demás clases podrán acceder a este elemento el cual puede ser una clase un atributo un método
o un constructor.
Como hemos mencionado entonces sin importar dónde se encuentre la otra clase que desea acceder al elemento
público y sin importar si desciende uno de la clase que define el elemento público estas otras clases
podrán acceder al elemento definido como publica.
Este modificador es el más simple de aplicar y en resumen lo utilizaremos cuando deseemos que las demás
clases accedan sin problemas a nuestro elemento marcado como publica.
Por ello es común que los métodos de tipo jet set de los atributos de una clase se definan como Public
ya que el objetivo de estos métodos es que sean accedidos por cualquier otra clase y así puedan ya sea
leer o modificar el estado de un atributo de un objeto a través de estos métodos modificador de acceso
protected el siguiente modificador que revisaremos es el modificador protected.
Este modificador lo utilizaremos cuando deseemos proteger las clases que no descienden directamente
de la clase que define el elemento protected y que no puedan acceder a dicho elemento.
Por lo tanto será común encontrar el modificador protected en atributos o métodos de una clase con el
objetivo de que las clases hijas puedan acceder a estos elementos ya sea en el mismo paquete o en un
paquete distinto.
De allí su nombre el cual protege del acceso de clases externas que no tienen nada que ver con la jerarquía
de sus clases.
En el diagrama podemos observar que para indicar el tipo protected vamos a utilizar el símbolo de número
y como hemos comentado.
Si definimos una clase que extienda la clase 1 por ejemplo en este caso la clase 3 extiende la clase
1 la clase 3 podrá acceder directamente a los elementos definidos como protected en la clase padre ya
sea que esté dentro del mismo paquete del paquete 1 o en un paquete externo en un paquete distinto.
Por ejemplo el paquete 2.
Cabe señalar que este modificador no aplica en la definición de una clase es decir que no es posible
definir una clase como tipo protected
modificador de acceso de FAW o package ahora veremos el modificador de FAW o package como su nombre
lo indica este modificador limita el acceso a las clases definidas dentro del mismo paquete por lo que
cualquier otra clase fuera del paquete donde se ha definido el elemento no podrá acceder a dichos elementos.
Este modificador no tiene una palabra reservada sino que más bien la omisión de cualquier modificador
el compilador entiende que se tratará como de un tipo Defour o package.
Este modificador no es común encontrarlo por ser poco seguro ya que permite que cualquier clase del
paquete pueda acceder al elemento en cuestión.
Sin embargo si es lo que deseamos podemos aplicar precisamente este modificador de acceso al elemento
deseado y podemos observar que éste es el símbolo que se va a utilizar para indicar que un elemento
ya sea un atributo o un método de nuestra clase va a tener el valor por default así que esta es la notación
que vamos a utilizar.
Y una vez que hemos definido un atributo o un método como tipo default entonces cualquier otra clase
dentro del mismo paquete podemos observar que estamos dentro del mismo paquete puede acceder a este
atributo o método marcado como default o package.
Pero una clase fuera de este paquete ya no puede acceder a estos atributos ya que estamos precisamente
fuera de otro paquete
modificador de acceso Private finalmente veremos el modificador de acceso Playboy.
Este modificador básicamente evita que cualquier otra clase incluso también las mismas subclases accedan
al elemento marcado como Playboy.
Este modificador es el más restrictivo y no se puede aplicar a la definición de una clase ya que no
podemos definir una clase como privada el símbolo que utilizamos para definir un elemento como privado
es el símbolo de menos.
Es como aplicar este tipo de modificador a los atributos de una clase ya que la idea es que sea a través
de los métodos jet set como se acceda a los atributos de un objeto pero no directamente a los atributos.
Por lo tanto en la mayoría de los casos los atributos de una clase los vamos a definir como privados
y los métodos jet set se van a definir como públicos.
También podemos crear métodos privados que sólo podrán ser accedidos desde la misma clase donde se definen
pero desde ninguna otra clase podrán ser accedidos.
Por último es posible definir constructores privados con un objetivo similar ser utilizados únicamente
por la clase en la cual se está definiendo y así evitar su acceso directo desde otras clases.
Vamos a crear a continuación un ejercicio donde vamos a poner en práctica estos modificadores de acceso.