{"id":43,"date":"2018-07-05T14:45:45","date_gmt":"2018-07-05T14:45:45","guid":{"rendered":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/?p=43"},"modified":"2018-07-05T15:17:10","modified_gmt":"2018-07-05T15:17:10","slug":"el-encapsulamiento-y-la-visibilidad-en-java","status":"publish","type":"post","link":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/2018\/07\/05\/el-encapsulamiento-y-la-visibilidad-en-java\/","title":{"rendered":"El encapsulamiento y la visibilidad en Java"},"content":{"rendered":"<p style=\"text-align: justify\">En software hay dos aspectos muy importantes: el <span style=\"text-decoration: underline\">interface<\/span> y la <span style=\"text-decoration: underline\">implementaci\u00f3n<\/span>.<\/p>\n<p style=\"text-align: justify\">En el interface, se nos indica c\u00f3mo se va a acceder nuestro software y c\u00f3mo ser\u00e1 utilizado. En Java, el interface est\u00e1 compuesto por los elemento de una clase que van a ser visibles desde fuera de \u00e9sta.<\/p>\n<p style=\"text-align: justify\">Por otro lado tenemos la implementaci\u00f3n, que se compone del c\u00f3digo exacto que se ha utilizado en desarrollar los diferentes algoritmos. En Java se compone de atributos y de m\u00e9todos.<\/p>\n<p style=\"text-align: justify\">El t\u00e9rmino <span style=\"text-decoration: underline\">encapsulamiento<\/span> en Java, consiste en ocultar atributos de un objeto de manera que solo se pueda cambiar mediante operaciones definidas en ese objeto. Est\u00e1 estrechamente relacionado con la visibilidad.&nbsp;<\/p>\n<p>Para definir la visibilidad en Java, se dispone de palabras reservadas:<\/p>\n<ul>\n<li><em><strong>public<\/strong><\/em>: nos indica que es accesible desde cualquier clase [interface].<\/li>\n<li><em><strong>private<\/strong><\/em>: solo es accesible desde a clase actual.<\/li>\n<li><em><strong>protected<\/strong><\/em>: accesible desde la clase actual, sus descendientes o el paquete del que forma parte.<\/li>\n<li><em><strong>sin ninguna palabra<\/strong><\/em>: accesible desde cualquier clase del paquete.<\/li>\n<\/ul>\n<p style=\"text-align: justify\">Los atributos en Java, deben tener visibilidad <em>private<\/em>. Entonces, \u00bfc\u00f3mo accedemos a los atributos? La respuesta est\u00e1 en los m\u00e9todos <strong><em>Getters<\/em><\/strong> y <em><strong>Setters<\/strong><\/em>. Veamos un ejemplo de c\u00f3digo de estos m\u00e9todos.<\/p>\n<p><code>class Punto {<\/code><\/p>\n<p style=\"padding-left: 30px\"><code>private double puntox, puntoy;<\/code><\/p>\n<p style=\"padding-left: 30px\"><code>public double getPuntox() {<\/code><\/p>\n<p style=\"padding-left: 60px\"><code>return puntox;<\/code><\/p>\n<p style=\"padding-left: 30px\"><code>}<\/code><\/p>\n<p style=\"padding-left: 30px\"><code>public void setPuntox (double puntox) {<\/code><\/p>\n<p style=\"padding-left: 60px\"><code>this.puntox = puntox;<\/code><\/p>\n<p style=\"padding-left: 30px\"><code>}<\/code><\/p>\n<p><code>...<\/code><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En software hay dos aspectos muy importantes: el interface y la implementaci\u00f3n. En el interface, se nos indica c\u00f3mo se va a acceder nuestro software y c\u00f3mo ser\u00e1 utilizado. En Java, el interface est\u00e1 compuesto por los elemento de una clase que van a ser visibles desde fuera de \u00e9sta. Por otro lado tenemos la [&hellip;]<\/p>\n","protected":false},"author":2335,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1453915],"tags":[1475694],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/posts\/43"}],"collection":[{"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/users\/2335"}],"replies":[{"embeddable":true,"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":8,"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/posts\/43\/revisions"}],"predecessor-version":[{"id":51,"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/posts\/43\/revisions\/51"}],"wp:attachment":[{"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/media?parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/categories?post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogsaverroes.juntadeandalucia.es\/apuntesprogramacion\/wp-json\/wp\/v2\/tags?post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}