Vamos a continuar vamos a revisar ahora la clase 4
vamos a quitar estos comentarios
recordemos que la clase 4 es una clase que se encuentra en otro paquete pero que no hace extent de la
Clase 1 así que básicamente es una clase que no tiene nada que ver con la clase 1 y además se encuentra
en otro paquete.
Por lo tanto vamos a encontrar las mayores restricciones cuando estamos trabajando con clases que se
encuentran en otros paquetes y que no son clases hijas de la clase que queremos utilizar así que básicamente
vamos a ver cada una de las restricciones vamos a crear un constructor de esta clase
creamos el constructor vació y vamos a apoyarnos de la Clase 3 para hacer las pruebas que ya hemos hecho
en la Clase 3 pero ahora hacia la clase 4 vamos a importar la clase 1 que se encuentra en el paquete
1 damos formato
y vamos a hacer las pruebas de los constructores de la Clase 1 en este caso súper ya no lo podemos utilizar
debido a que la clase IV no extiende de la Clase 1 por lo tanto ya no podemos hacer uso de la palabra
súper ya que súper únicamente lo podemos utilizar cuando hacemos extensión de alguna clase así que vamos
a quitar esta línea y podemos ver que lo único que podemos hacer es mandar a llamar al constructor público
de la clase 1 si intentamos mandar a llamar el constructor protegido podemos observar que nos marca
error el constructor de falopa package también ya nos marca error y también si intentamos mandar a llamar
el constructor privado así que ya no podemos hacer ninguna llamada de este tipo solamente podemos utilizar
el constructor público de la clase 1 bien como siguiente paso vamos a poner a prueba cada uno de los
atributos y métodos para ello podemos apoyarnos también de la clase 3
vamos a copiar este método vamos a la clase 4
y pegamos el método prueba desde la clase pero vamos a cambiar el nombre prueba desde la clase 4 modificamos
este código para hacer la llamada utilizando el objeto pero podemos observar que de ninguna forma
se puede mandar a llamar los atributos protegidos bien vamos a analizarlo lo que sí podemos hacer es
mandar a llamar los atributos públicos de la clase 1 precisamente por el concepto de públic pero el
atributo protegido debido a que ya estamos en otra clase y no hace extent de la clase 1 entonces no
podemos acceder al atributo protegido ya sea utilizando la referencia de la variable objeto 1 o mandarlo
a llamar directamente al atributo de ninguna forma podemos hacer uso de ese atributo protegido así que
vamos a poner entre comentarios este código para que nos pueda compilar la clase posteriormente si tratamos
de mandar a llamar el atributo de fought opacas tampoco podemos mandarlo a llamar y nos manda el mensaje
de que el atributo de foll no es público en la clase 1 por lo tanto no puede ser accedido desde otro
paquete
así que ponemos entre comentarios esta línea y nos manda el mensaje de que ese atributo está marcado
como privado en la clase 1 por lo tanto no lo podemos acceder desde otra clase y mucho menos desde otro
paquete.
Y por último vamos a analizar los métodos en este caso mandamos a llamar al método público podemos observar
que podemos mandar a llamar el método público sin ningún problema.
El método público declarado en la clase 1 pero el método marcado como protegido ya no podemos acceder.
Ya sea con la referencia de la variable o sin la referencia debido a que ya no estamos haciendo extensión
de la clase 1 así que ya no podemos mandar a llamar atributos o métodos marcados como protegidos y nos
manda el mensaje de que este método está marcado como protegido en la clase 1 y vamos a ponerlo entre
comentarios para que podamos compilar y ahora vamos a analizar el método de Follo package.
De igual manera nos marca que este método no está marcado como público en la Clase 1 por lo tanto no
puede ser accedidos desde otro paquete
y finalmente el método marcado como privado nos indica que este método está marcado como privado en
la Clase 1 por lo tanto tampoco lo podemos acceder desde otra clase y menos desde otro paquete así que
se debe hacer la prueba con más restricciones
vamos a agregar un método main creamos un objeto de la clase 4 llamado Ce4
y mandamos a llamar la prueba desde Clase 4 damos un formato guardamos cambios y ejecutamos y básicamente
vamos a comprobar lo que ya hemos explicado desde la clase 4 únicamente podemos utilizar el constructor
público de la clase 1.
Posteriormente volvemos a tener un objeto de la clase 1.
Por ello se vuelve a imprimir el valor constructor público vacío y podemos observar que ya únicamente
podemos acceder al atributo público valor atributo públicos lo que nos muestra ya no podemos acceder
a ningún otro tipo de atributo ya sea marcado como protegido de foll opacas y también los métodos únicamente
podemos acceder al método público ya no podemos acceder a los métodos marcados como protected de foll
opacas y tampoco a los métodos privados definidos en la clase 1 así que con esto ya hemos puesto en
práctica cada una de las posibilidades.
Cuando estamos trabajando con los modificadores de acceso en IAVA hemos visto cómo aplica a cada uno
de esos elementos ya sea en los constructores en los atributos o en los métodos y también cómo afecta
a cada una de las clases definidas ya sea dentro de los mismos paquetes o definidas en otros paquetes.
Incluso también analizamos el caso cuando una clase desde otro paquete extiende la clase a la cual queremos
acceder y vimos cada una de las restricciones utilizando los modificadores de acceso en Java Public
protected default o Package y finalmente Priede bien eso es todo por este ejercicio y nos vemos en la
siguiente elección.
Saludos.