Continuemos con más detalles de los paquetes en la clase anterior vimos cómo importar clases que están
en diferentes paquetes.
Por ejemplo, la clase con el método Main está en un paquete distinto que Gatto y personas que están
en el package hogar.
Ahora, qué pasa si ambas clases estuvieran en el mismo package?
Por ejemplo, la clase con el método main.
Ejemplo paquetes.
Quiero utilizar una clase que está también en este package en app.
En la raíz.
Veamos.
Voy a crear una clase perro.
Okay.
En el mismo paquete que la clase principal con el método main.
Bueno, no es necesario tener que importar, ya que están dentro del mismo contexto.
Mismo paquete perro perro y listo.
Se fijan.
No hay ningún import de perro porque están en el mismo contexto.
Se fijan bien.
Solamente necesario importar cuando están en distintos paquetes.
Ahora, qué pasa con la visibilidad, con el acceso de la clase de los atributos que están en distinto
paquete, distinto package?
Vemos, por ejemplo, si quiero no utilizar gato que está en hogar en la clase que están en el package
app, por ejemplo, no la quiero utilizar acá o quiero restringir el acceso.
Bueno, gato está como publish se fija y toda clase que public se puede utilizar en todos lados.
Pero qué pasa si es alto ahí?
Sin el public.
Bueno, Difficult también se le conoce como como modificador de paquete.
Es decir, solamente se puede acceder a esta clase dentro de la clase que están dentro del mismo package,
pero no fuera.
Y como gato está en hogar.
Por supuesto que no se va a poder utilizar en APP en otro package que no sea hogar.
Si se fijan marca error a pesar de que la estoy importando, pero gato ya no la puedo utilizar.
Incluso caudillaje gato no es public.
No se puede acceder desde fuera del paquete del package porque default e.
Más que nada para restringir acceso por diseño.
Entonces hay tal diferencia entre public y default modificadores.
Ahora esto es para la clase.
Por lo tanto, voy a quitar gato de acá.
Lo voy a quitar.
Voy a dejar solamente persona.
Pero también se aplica a atributos y métodos.
Por ejemplo, perro perdón persona persona tiene el atributo nombre que publico y lo estamos utilizando
acá.
Nombre lo usamos.
Qué pasa si nombre ahora es default?
Vamos a ver.
Entonces cambiamos de Public Hadi Fold, pero simplemente quitamos el public.
Pasa lo mismo.
Se puede utilizar personas?
Si se puede utilizar persona.
De hecho, se instancia sin ningún problema, pero no se puede utilizar el atributo por la misma razón
que di fold o de paquete.
Entonces es por eso muy importante también lo modificadores.
Cuando queremos dar acceso a nuestros atributos, a los métodos, ya sea por segurida, por requerimientos,
por diseño, pero sin embargo podría ir a persona.
Apellido perfecto, apellido también es de foll.
Si lo dejo públic vamos a poder acceder solamente apellido, pero no en nombre, se fijan.
Apellido?
No hay ningún problema.
Bien puedes ver como estaba en Públic, acá también voy a dejar Nombre bello, esos dos atributos por
ahora.
Ahora veamos un ejemplo de un atributo en perro.
Por ejemplo, nombre,
la raza, dos atributos, nombre y raza es de tipo público.
Por lo tanto, acá tengo perro.
Perro punto nombre.
Del tipo String, por ejemplo, Tobby bajo cualquier nombre y la raza, un bulldog es público, por
lo tanto lo puedo acceder.
Pero también fíjense bien.
Perro está en el mismo paquete.
Ahora voy a dejar estos atributos por defecto.
Voy a quitar el públic.
Si se fijan, también lo pude utilizar namarca error, porque al ser Follet lo pude utilizar en la clase
que están dentro del mismo package.
Así que está perfecto.
Puedes usar los atributos de Font de perro dentro de la clase ejemplo paquetes por estar dentro del
mismo contexto.
Incluso podría ir a perro y cambiar el modificador protected protected protegido, que de cierta forma
tiene una similitud con fold porque también se puede acceder dentro del mismo paquete.
Se fija en función exactamente igual que fold, pero también la diferencia que Protected funciona también
para la herencia.
Es decir, estos atributos se pueden acceder ya sea leer o modificar o también métodos métodos protegidos
se pueden acceder dentro del package sin ningún problema y fuera de package.
Depende si es una clase que hereda de esta clase de la clase perro como protegida.
Cualquier clase hija de perro de la herencia también podría acceder a estos atributos, pero solamente
en la herencia.
Pero el tema que vamos a hacer después porque protecto es aplica tanto para herencia de atributos o
métodos de la clase padre.
Pero también se aplica para poder acceder atributos o métodos en la clase que están dentro del mismo
paquete del mismo package.
Entonces importante el tema de visibilidad de los modificadores.
Recuerden entonces public se puede acceder en cualquier parte de la aplicación.
Es visible para todo el mundo, mientras que default solamente para la clase que están dentro del mismo
paquete protected la clase que están dentro del mismo package mismo paquete y también en las clases
hijas que heredan de esta clase que tienen los atributos y métodos protegidos.
Y por último tenemos private.
Solamente se pueden acceder a estos miembros métodos atributos en la misma clase, independiente del
package, independiente de la herencia, si es una clase hija o no. En fin, solamente es propio de
la clase.
Bien, la próxima clase vamos a continuar trabajando con los modificadores y viendo ejemplos.
Nos vemos.