Tres ejercicios básicos resueltos sobre modificadores de acceso en Java.
En esta entrada les traigo tres ejercicios muy básicos para que ustedes puedan medir sus conocimientos sobre el uso de los modificadores de acceso en Java.

Si aún no tienes claro que es un modificador de acceso, recuerda que tiene que ver con la forma en que las palabras public, private y protected indican quien tiene acceso a las propiedades y a los métodos de una clase, y cómo se realiza ese acceso. Puedes leer más sobre este tema aquí.
Ejercicio 1.
Para este ejercicio, considera la siguiente clase:
public class ClasePadre { public int variable1; private int variable2; protected int variable3; public void mostrarVariable(){ System.out.println("El valor de unaVariable es: " + this.variable1); } public int getVariable2() { return variable2; } public void setVariable2(int variable2) { this.variable2 = variable2; } }
Y su correspondiente clase hija:
public class ClaseHija extends ClasePadre{ public ClaseHija(){ super(); } }
Ahora las preguntas, toma lápiz y papel y contesta lo siguiente. Si quieres saber si tus respuestas son correctas, haz click en el botón “Ver respuesta”, y si quieres la explicación, presiona sobre el botón “Ver explicación”.
Pregunta 1.
ClaseHija necesita asignar el valor 10 a variable1 desde su constructor. ¿Cómo se haría?
¿Quieres saber por qué?
Pregunta 2.
Ahora, ClaseHija necesita asignar el valor -3 a variable2 desde el constructor de ClaseHija.
Haz click en el siguiente botón para la explicación:
Pregunta 3.
Para este ejercicio, ClaseHija debe asignarle el valor 8 a variable3 desde su constructor.
Parece ser que el acceso a variable3 es como el acceso de una variable pública, como se hizo con variable1. Pero recuerda que variable3 está declarada como protected. ¿Qué pasa entonces?
Ejercicio 2.
Para este ejercicio, considera nuevamente el código de ClasePadre y ClaseHija del ejercicio 1, pero además, la siguiente clase principal:
public class ClasePrincipal{ public static void main(String[] args) { ClasePadre papa = new ClasePadre(); ClaseHija hija = new ClaseHija(); } }
Asume que ClasePadre, ClaseHija y ClasePrincipal están todas en el mismo paquete.
Pregunta 1.
Se requiere asignar, del objeto papa:
- 12 a la variable1.
- 15 a la variable2.
- 13 a la variable3.
Click para leer la explicación:
Pregunta 2.
Se requiere asignar, del objeto hija:
- 8 a la variable1.
- 9 a la variable2.
- -10 a la variable3.
Esta pregunta es muy semejante a la anterior, pero de cualquier forma, te presento la respuesta:
Y su explicación correspondiente:
Ejercicio 3.
Ahora he creado la siguiente clase:
package otroPaquete; import paqueteModificadores.ClasePadre; public class OtraClase { public OtraClase(){ ClasePadre padre = new ClasePadre(); padre.variable3=10; } }
Como puedes observar, la ClasePadre y la ClaseHija pertenecen a paqueteModificadores. Y OtraClase se encuentra en otroPaquete. También es importante notar que OtraClase no es hija de ClasePadre, pero sí está creando un objeto de esta clase (objeto padre).
Pregunta 1.
¿Qué sucede cuando se intenta asignar el valor 10 a la variable3 del objeto padre?

Esta entrada fue muy cortita, pero más que nada quería apoyar a los estudiantes que aún tienen problemas con el uso de los modificadores de acceso en Java a despejar un poco las dudas. Pero si te he sembrado más dudas de las que te resolví, no dudes en dejarme un comentario y con mucho gusto te ayudaré.
Saludos a todos.
al parecer este blog ya me ayudo a resolver mi duda acerca de la palabra super