Cita:
Iniciado por jor_0203 repito la pregunta
muchos dicen que no es lo mismo y la definen así
1- visibilidad hace referencia de ponerles atributos privados ejemplo privado nombre
2-encapsulamiento NADIE DEBE CONOCER ESTOS MÉTODOS YA QUE SON INTERNOS ejemplo privado meterDatos()
pero no entiendo, si yo tengo un atributo y le pongo privado esto lo hace que le pongamos el concepto de visibilidad, pero cuando le ponemos el concepto privado a un metodo es encapsulamiento
no me queda muy claro este concepto
1- visibilidad hace referencia de ponerles atributos privados ejemplo privado nombre
Es correcto.
2-encapsulamiento NADIE DEBE CONOCER ESTOS MÉTODOS YA QUE SON INTERNOS ejemplo privado meterDatos()
También es correcto.
Esas definiciones no son contradictorias.
Debes empezar por entender algo:
El concepto del encapsulamiento hace uso del concepto de la visibilidad para lograr su objetivo.
Y te respondo con tu mismo ejemplo:
Si tienes un atributo que has declarado como privado, así sin más, entonces estás usando el concepto de visibilidad. Si un método lo declaras como privado, también estás usando el concepto de visibilidad. El concepto de visibilidad se aplica tanto a atributos, métodos y clases.
Ahora, si tú tienes varios métodos y atruibutos en tu clase, pero sólo deseas que desde fuera sólo se pueda acceder a un método, entonces aquí entra en acción
el concepto de encapsulamiento valiéndose del concepto de visibilidad: se declararán como privados los métodos y atributos que no se desea que sean accesibles y como público el único método que podrá ser accesible desde fuera.
Acabamos de usar el concepto de visibilidad para implementar el encapsulamiento en esa clase.
El concepto de visibilidad en sí, es simple: define el nivel de accesibilidad que tendrá un atributo, un método o una clase. Nada más.
En cambio, el concepto de encapsulamiento va más allá, se vale del concepto de visibilidad para hacer que sólo los métodos y atributos que se desean sean accesibles.
Cuando yo comencé en este mundo, no sabía que había que el encapsulamiento era un concepto defninido, yo sólo conocía el concepto de visibilidad. Sin embargo, usaba el encapsulamiento sin saber que así se llamaba.