{"id":1747,"date":"2024-08-02T11:47:03","date_gmt":"2024-08-02T09:47:03","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=1747"},"modified":"2024-08-02T11:47:03","modified_gmt":"2024-08-02T09:47:03","slug":"03-caracteristicas-del-poo","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/php\/poo-php\/03-caracteristicas-del-poo\/","title":{"rendered":"03. Caracter\u00edsticas del POO"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">La <strong>POO<\/strong> debe guardar ciertas caracter\u00edsticas que la identifiquen y diferencien de otros paradigmas de programaci\u00f3n. Estas son:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Abstracci\u00f3n<\/strong><\/li>\n\n\n\n<li>Capacidad de\u00a0<strong>encapsulamiento<\/strong><\/li>\n\n\n\n<li><strong>Modularidad<\/strong><\/li>\n\n\n\n<li><strong>Ocultaci\u00f3n o aislamiento:<\/strong>\u00a0acceso restringido o poder ocultar ciertas cosas.<\/li>\n<\/ul>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Las caracter\u00edsticas de la&nbsp;<strong>POO<\/strong>&nbsp;deben guardar ciertos rasgos que la identifican y diferencian de otros paradigmas de programaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>PHP<\/strong>&nbsp;nos permite tanto utilizar&nbsp;<strong>POO<\/strong>&nbsp;como programaci\u00f3n estructurada. A lo largo de este manual lo que estamos viendo es programaci\u00f3n orientada a objetos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Abstracci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La&nbsp;<strong>abstracci\u00f3n<\/strong>&nbsp;es el&nbsp;<strong>aislamiento de un elemento de su contexto<\/strong>. Define las caracter\u00edsticas esenciales de un&nbsp;<strong>objeto<\/strong>. La&nbsp;<strong>abstracci\u00f3n<\/strong>&nbsp;se queda a nivel de&nbsp;<strong>clase<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Encapsulamiento<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El&nbsp;<strong>encapsulamiento<\/strong>&nbsp;re\u00fane al mismo nivel de&nbsp;<strong>abstracci\u00f3n<\/strong>&nbsp;a todos los elementos que puedan considerarse pertenecientes a una misma entidad. El&nbsp;<strong>encapsulamiento<\/strong>&nbsp;se queda a nivel de&nbsp;<strong>objeto<\/strong>. Encapsular nos dice hasta donde pueden llegar las&nbsp;<strong>capacidades<\/strong>&nbsp;de los m\u00e9todos programados bas\u00e1ndose en la&nbsp;<strong>abstracci\u00f3n<\/strong>&nbsp;como tal del concepto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Modularidad<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La&nbsp;<strong>modularidad<\/strong>&nbsp;es la caracter\u00edstica que permite dividir una aplicaci\u00f3n en varias partes m\u00e1s peque\u00f1as, independientes unas de otras. La&nbsp;<strong>modularidad<\/strong>&nbsp;nos lleva a la filosof\u00eda de no repetir c\u00f3digo, conocido como&nbsp;<strong>dry<\/strong>&nbsp;(<strong>don\u00b4t repeat yourself<\/strong>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ocultaci\u00f3n o aislamiento<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los&nbsp;<strong>objetos<\/strong>&nbsp;est\u00e1n aislados del exterior, protegiendo a sus <strong>propiedades<\/strong> para no ser modificadas por personas que no tengan derecha a acceder a dichos <strong>objetos<\/strong>. Como hemos comentado, los objetos pueden hacer <strong>acciones<\/strong> mediante los <strong>m\u00e9todos<\/strong>, y pueden tener <strong>caracter\u00edsticas<\/strong> mediante las <strong>variables<\/strong>. Estas <strong>propiedades<\/strong> o <strong>caracter\u00edsticas<\/strong> es posible limitarlas o condicionarlas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A nivel de&nbsp;<strong>ocultaci\u00f3n<\/strong>&nbsp;tenemos 3 niveles de poder ocultar nuestros <strong>atributos<\/strong> en <strong>programaci\u00f3n orientada a objetos<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modificador p\u00fablico<\/li>\n\n\n\n<li>Modificador privado<\/li>\n\n\n\n<li>Modificador protegido<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Un&nbsp;<strong>m\u00e9todo<\/strong>&nbsp;o&nbsp;<strong>propiedad p\u00fablica<\/strong>, si ponemos como ejm la red social&nbsp;<a href=\"https:\/\/www.facebook.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Facebook<\/strong><\/a>, ser\u00eda nuestro nombre, el cual no podemos ocultar, cuando alguien haga una b\u00fasqueda por nombre, por ejm, la imagen de perfil tampoco la podemos ocultar a nadie, a no ser que bloqueemos a alguien en particular en cuyo caso, para ese alguien toda nuestra cuenta se vuelve privada. Siguiendo nuestro ejm con&nbsp;<strong>Facebook<\/strong>,&nbsp;<strong>ocultaci\u00f3n protegida&nbsp;<\/strong>es cuando ponemos como protegida nuestra direcci\u00f3n f\u00edsica o datos personales eligiendo las personas que pueden ver nuestros datos m\u00e1s privados, y si s\u00f3lo soy yo quien puedo ver cierto tipo de datos, este tipo de&nbsp;<strong>ocultaci\u00f3n<\/strong>&nbsp;ser\u00eda&nbsp;<strong>privada<\/strong>, solo vista por m\u00ed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Polimorfismo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El&nbsp;<strong>polimorfismo<\/strong>&nbsp;es la capacidad que da a diferentes&nbsp;<strong>objetos<\/strong>, la posibilidad de contar con&nbsp;<strong>m\u00e9todos<\/strong>&nbsp;y&nbsp;<strong>atributos<\/strong>&nbsp;de igual nombre, sin que los de un&nbsp;<strong>objeto<\/strong>&nbsp;interfieran con los de otro. Como su nombre dice, poli (mucho) morfo (forma), es decir, muchas formas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Herencia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La&nbsp;<strong>herencia<\/strong>&nbsp;es la capacidad de poder heredar&nbsp;<strong>caracter\u00edsticas<\/strong>. Es la relaci\u00f3n existente entre 2 o m\u00e1s&nbsp;<strong>clases<\/strong>, donde una es la&nbsp;<strong>principal<\/strong>&nbsp;(<strong>madre<\/strong>) y otras son&nbsp;<strong>secundarias<\/strong>&nbsp;y dependen (<strong>heredan<\/strong>) de ellas (<strong>clase hijas<\/strong>), donde, a la vez, los&nbsp;<strong>objetos<\/strong>&nbsp;heredan las caracter\u00edsticas de los&nbsp;<strong>objetos<\/strong>&nbsp;de los cuales dependen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Recolecci\u00f3n de basura<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Es la t\u00e9cnica que consiste en destruir aquellos&nbsp;<strong>objetos<\/strong>&nbsp;cuando ya no son necesarios, liber\u00e1ndolos de la&nbsp;<strong>memoria<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La POO debe guardar ciertas caracter\u00edsticas que la identifiquen y diferencien de otros paradigmas de programaci\u00f3n. Estas son:<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1735,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-1747","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"La POO debe guardar ciertas caracter\u00edsticas que la identifiquen y diferencien de otros paradigmas de programaci\u00f3n. Estas son:","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1747"}],"version-history":[{"count":2,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1747\/revisions"}],"predecessor-version":[{"id":1749,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1747\/revisions\/1749"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1735"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}