Veamos un ejemplo de modificadores de acceso de package o default, pero más orientado a objetos la
vida real más que de una aplicación en Java.
La idea es poner un ejemplo simple en un contexto cotidiano de la vida real.
Bueno, que también se podría aplicar a un programa de yaba, quizás a un juego por ejemplo, o algo
así.
Pero bien, veamos lo primero vamos a organizar un poco las clases, vamos a crear un package dentro
de app de forma paralela al hogar.
Vamos a crear el package jardín.
Por lo tanto, estar dentro de app perfecto en jardín.
Vamos a mover ejemplo paquetes.
Lo movemos.
Ok.
Refractor.
Y movemos también perro.
Москве refractor Lytton se fijan ahora tenemos dos рамках que son hermanos, hogar y jauto personas
jardín perro y nuestra aplicación con el metodo M dentó sigue funcionando exactamente igual, solamente
que le dimos un orden un poco más estructurado.
Bien, lo siguiente persona recuerden siempre privat lo dejamos en públic solamente para el ejemplo.
Entonces privat y generamos lo pietra transceptor.
De los dos marcamos los dos.
Ok, bien, entonces ahora nos vamos.
Ejemplo Pakete usamos set.
Yaca Jetta?
Bien repecto a perro es protected o lo podemos dejar como disuelto porque Depakote.
Pero ahora mismo.
Pero como tiene ya un modificador, ya por lo menos está protegiendo los atributos dentro de РАМКАХ.
Es decir, si incluimos esta clase en otro paquete distinto, por ejemplo, si queremos utilizar perro
dentro del package hogar o en cualquier otro, no lo podemos hacer.
Es decir, podemos porque en realidad public, pero incluso podría ser de fold y los atributos son protected.
Por lo tanto, solamente se puede utilizar dentro del package jardín.
Es la idea de que el perro solamente tiene jardín y no entre la casa.
En un ejemplo bien real.
Y esa es la idea, restringir que el perro entre la casa que juega en la casa.
En fin, solamente la persona, el dueño puede ir a jugar o interactuar con el perro en el jardín.
Y de hecho, gato solamente está dentro de la casa.
Al gato lo dejamos simple, lo dejamos como default.
No es público.
Por lo tanto, gato solamente puede estar dentro de la casa, porque en el jardín probablemente con
el perro peleen por un problema mayor.
Entonces esa la idea.
Vamos a crear un par de métodos en persona y también en perro para que interactúen.
Es decir, para que el perro pueda jugar con la persona.
Pero ojo, solamente jugar en el jardín y no dentro de la casa.
Por eso digo que es un ejemplo más de la vida real y no tanto de un programa empresarial en Yaba, más
que nada para poder ejemplarizar los contextos y los modificadores.
Bueno, contexto me refiero a los paquetes en otro lenguaje, los РАМКАХ.
Se le conoce como namespace también.
Por ejemplo deshechar.
Punto net en php también.
Net space que significa el nombre de espacio justamente.
Bien, entonces sigamos.
Vamos a persona.
Primero iba a tener un método, un método público que le permita lanzar o jugar con el perro.
Por ejemplo Strength.
Lanzar pelota.
O lanzar un palo, por ejemplo, al perro.
Algo simple y elpúblico.
Por lo tanto, persona, por supuesto, puede utilizar este método en cualquier parte.
Pudiera jugar en el jardín.
En fin.
Dónde está el perro?
Pero el perro va a tener otro método que para que interactúe y juegue con el dueño.
Por lo tanto va a haber una relación de dependencia.
Es decir, el perro en este método va a recibir una instancia de persona para que la persona le lance
la pelota y el perro como reacción, vaya a ir a buscar la pelota.
Pero ojo, no puede ser públic.
La idea es que el perro solamente juegue en su contexto en el jardín y no dentro de la casa.
Entonces no puede ser pulí, tiene que ser de fold estric jugar.
Pero con quién?
Con la persona.
Por lo tanto, recibe como argumento el método persona.
Pero estoy fija en persona.
La tiene que importar para poder utilizarla.
De qué está en el package hogar entonces?
Con control, barra espacio.
Como siempre la importo de forma automática.
Sí importa.
Entonces import or.
Punto a Guzmán.
Punto a punto ogar.
Punto persona la estamos utilizando.
Entonces retornamos persona a punto lanzar pelota.
Entonces esta forma.
Si nos vamos al ejemplo con el método main que está en Jardim, entonces bueno perro, puedes jugar
con la persona en el jardín, por ejemplo string jugando igual.
Perro punto jugar.
Y qué le pasa?
Por instancia le pasa Andrés a la persona.
Entonces le pasamos p relación de dependencia en 9L se fijan, ya están interactuando estos dos objetos
y esa es la idea de que el objeto se pueden comunicar, interactuar para realizar alguna acción, alguna
tarea.
En este caso que el perro juegue con su dueño en el jardín.
Хотя y mostrame jugando se fijan un ejemplo simple para representar.
Jugando lanza la pelota al perro.
Ven acá, dice Nul.
Porque en realidad es set nombre acá.
No se apellido ese nombre.
Y también le podemos pasar el apellido.
Toma.
Listo.
Andrés, entonces jugando, lanza la pelota al perro.
Pero qué pasa si ahora en Hogar quiero crear una clase con el método Main, una aplicación y tratar
de que la persona juegue con el perro dentro de la casa?
Veamos.
Entonces hubo una clase ejemplo hogar
con el método Main.
La persona la podemos crear sin ningún problema, se fijan y ni siquiera es necesario tener que importarla,
porque persona es parte de hogar.
Tal como vimos, ahora quiero crear al perro perro igual new perro.
Perfecto.
Ahí tenemos al perro, pero tenemos que importar perro porque perro es del otro contexto.
Es de jardín perfecto.
Lo importamos.
Recuerden que por ahora perro es públic.
Entonces podría entrar a la casa, quizás para comer o para dormir.
No sé, puede ser, pero no para jugar.
Entonces, perro como está dentro del hogar.
Punto.
Jugar.
No podemos invocar ese método porque ese método es difundid.
Solamente se va a utilizar en el jardín.
Se fijan y esa es la idea.
Perro jugar solamente en su contexto en jardín, pero no en hogar.
Acá no puede jugar.
De hecho, no puedo invocar el método.
Hacer otras actividades, pero no jugar.
Incluso podríamos ser incluso más estricto todavía.
Es decir, que el perro simplemente no entra a la casa.
Tienes que estar siempre en el jardín.
Bueno, no la idea, pero podría ser entonces perro.
Simplemente quitamos el públic y listo.
Nos vamos ejemplo hogar y ya no puede utilizar perro dentro de la casa.
Si no puede entrar.
El gato puede entrar, pero no el perro.
Así que bueno, son diferente diseño.
Y no hay una regla para decir que cuando usamos foll, cuando usamos públic, todo depende de nuestro
diseño, que queremos implementar reglas de negocio requisito en la aplicación.
En fin, voy a dejar en públic perro, pero obviamente que solamente juegue en el jardín y no en la
casa.
Bueno, gato lo tenemos de ejemplo, lo podríamos implementar y podría tener método que solamente puedan
estar dentro del contexto de hogar y no fuera.
Quizás afuera pueda ir hacer sus necesidades.
Quizás, no sé, depende el diseño que le queramos dar, pero bueno, eso sería a grandes rasgos un
ejemplo simple y espero que sea entendido bien.
Continuamos en la siguiente clase con los import estáticos.