{"id":8050,"date":"2022-10-26T00:00:00","date_gmt":"2022-10-26T00:00:00","guid":{"rendered":"https:\/\/techlib.net\/techedu\/mutador\/"},"modified":"2022-10-26T00:00:00","modified_gmt":"2022-10-26T00:00:00","slug":"mutador","status":"publish","type":"post","link":"https:\/\/techlib.net\/techedu\/mutador\/","title":{"rendered":"Mutador"},"content":{"rendered":"<p> Un mutador es una funci\u00f3n que modifica el estado interno de un objeto de alguna manera. En la programaci\u00f3n orientada a objetos, un mutador es un m\u00e9todo que cambia el valor de una variable de instancia. <br \/>\n Por ejemplo, considere una clase que representa una cuenta bancaria. Esta clase puede tener un m\u00e9todo mutador que permite al titular de la cuenta depositar dinero en ella. Este m\u00e9todo tomar\u00eda una cantidad de dinero como argumento y a\u00f1adir\u00eda esa cantidad a la variable de instancia que representa el saldo de la cuenta. <br \/>\n Los m\u00e9todos mutadores se utilizan normalmente para establecer los valores de las variables de instancia que no son directamente accesibles al mundo exterior. Por ejemplo, una clase puede tener un m\u00e9todo p\u00fablico que permita al titular de la cuenta retirar dinero de la misma. Este m\u00e9todo tomar\u00eda una cantidad de dinero como argumento y restar\u00eda esa cantidad del saldo de la cuenta. Sin embargo, el propio saldo de la cuenta ser\u00eda una variable de instancia privada. La \u00fanica manera de cambiar su valor ser\u00eda a trav\u00e9s de un m\u00e9todo mutador. <br \/>\n Los m\u00e9todos mutadores se utilizan a menudo en conjunci\u00f3n con los m\u00e9todos accessor. Un m\u00e9todo accessor es un m\u00e9todo que devuelve el valor de una variable de instancia. Por ejemplo, la clase cuenta bancaria podr\u00eda tener un m\u00e9todo accesorio que devolviera el saldo de la cuenta. Esto permitir\u00eda al titular de la cuenta comprobar el saldo sin tener que acceder directamente a la variable de instancia. <br \/>\n Los m\u00e9todos mutadores y accesores a veces se denominan colectivamente m\u00e9todos modificadores. <\/p>\n<h3> \u00bfEs un constructor un setter?<\/h3>\n<p> Un constructor es un setter en el sentido de que inicializa valores para los objetos. Sin embargo, un constructor no es necesariamente un mutador, lo que significa que no puede cambiar los valores de los objetos despu\u00e9s de que hayan sido inicializados.   \u00bfQu\u00e9 es un m\u00e9todo mutador en Python?  Un m\u00e9todo mutador es un m\u00e9todo que cambia el valor de un atributo de un objeto. En Python, esto se hace asignando un nuevo valor al atributo. <\/p>\n<p> \u00bfCu\u00e1l es el significado de Assestors?  \"Assestors\" es una palabra clave utilizada por los desarrolladores para describir el c\u00f3digo que ya no es necesario o utilizado por la aplicaci\u00f3n, pero que todav\u00eda se almacena en la base de c\u00f3digo. Este c\u00f3digo se suele dejar en la base de c\u00f3digo por razones de \"legado\", como la compatibilidad con versiones anteriores de la aplicaci\u00f3n, o para dar soporte a caracter\u00edsticas que han quedado obsoletas. En algunos casos, este c\u00f3digo puede ser comentado, pero todav\u00eda est\u00e1 presente en la base de c\u00f3digo.   \u00bfEs un constructor un setter?  Un constructor no es un setter. Un setter es un m\u00e9todo que establece el valor de una propiedad. Cuando se crea e inicializa un objeto, se llama constructor. <\/p>\n<h4> \u00bfQu\u00e9 son las funciones mutadoras en C++?<\/h4>\n<p> Las funciones mutadoras son funciones que modifican el estado de un objeto. En C++, esto significa t\u00edpicamente que cambian el valor de una o m\u00e1s variables miembro. Las funciones mutadoras tambi\u00e9n se llaman a veces funciones \"setter\". <br \/>\n Hay varias formas de implementar las funciones de mutador en C++. La forma m\u00e1s com\u00fan es hacer que la funci\u00f3n tome un nuevo valor como par\u00e1metro y luego asigne ese valor a la variable miembro apropiada. Por ejemplo, consideremos una clase que representa un punto en un espacio bidimensional: <\/p>\n<p> clase Punto <br \/>\n { <br \/>\n p\u00fablica: <br \/>\n void setX(int newX); <br \/>\n void setY(int newY); <br \/>\n private: <br \/>\n int x; <br \/>\n int y; <br \/>\n }; <br \/>\n void Point::setX(int newX) <br \/>\n { <br \/>\n x = newX; <br \/>\n } <br \/>\n void Point::setY(int newY) <br \/>\n { <br \/>\n y = newY; <br \/>\n } <\/p>\n<p> Otra forma com\u00fan de implementar funciones de mutador es hacer que la funci\u00f3n devuelva una referencia al propio objeto. Esto permite el encadenamiento, en el que se pueden llamar varias funciones de mutador sobre el mismo objeto de forma sucesiva. Por ejemplo: <\/p>\n<p> clase Punto <br \/>\n { <br \/>\n p\u00fablica: <br \/>\n Point&amp; setX(int newX); <br \/>\n Point&amp; setY(int newY); <\/p>\n<p> private: <br \/>\n int x; <br \/>\n int y; <br \/>\n }; <\/p>\n<p> Point&amp; Point::setX(int newX) <br \/>\n { <br \/>\n x = newX; <br \/>\n return *this; <br \/>\n } <\/p>\n<p> Point&amp; Point::setY(int newY) <br \/>\n { <br \/>\n y = newY; <br \/>\n return *this; <br \/>\n } <\/p>\n<p> int main() <\/p>\n<p> Punto p; <br \/>\n p.setX(10).setY(20); <br \/>\n } <br \/>\n Hay algunas cosas que hay que tener en cuenta cuando se implementan funciones de mutador<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un mutador es una funci\u00f3n que modifica el estado interno de un objeto de alguna manera. En la programaci\u00f3n orientada a objetos, un mutador es un m\u00e9todo que cambia el valor de una variable de instancia. Por ejemplo, considere una clase que representa una cuenta bancaria. Esta clase puede tener un m\u00e9todo mutador que permite &#8230; <a title=\"Mutador\" class=\"read-more\" href=\"https:\/\/techlib.net\/techedu\/mutador\/\" aria-label=\"Leer m\u00e1s sobre Mutador\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":3734,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-8050","post","type-post","status-publish","format-standard","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts\/8050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/users\/3734"}],"replies":[{"embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/comments?post=8050"}],"version-history":[{"count":0,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts\/8050\/revisions"}],"wp:attachment":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/media?parent=8050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/categories?post=8050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/tags?post=8050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}