La igualdad y la orientación a objetos

Cuando vivíamos en el tranquilo mundo de la programación estructurada (incluso con C), era fácil saber que la igualdad era real. Por ejemplo ante la sentencia:

a = b;

Sabremos que el resultado de la expresión del lado derecho se asignará a la variable del lado izquierdo. Si por el camino tienes punteros, te da igual: se asignan los punteros y listo.

Pero cuando llega la orientación a objetos, la igualdad pasa a ser mucho más dudosa. De nuevo, ante el código:

a = b;

asignamos en el atributo a, el objeto b. Pero, ¿lo asignamos realmente? Si cambio el objeto b, ¿cambiará también el objeto a? En Java no soy consciente de los punteros (como lo era en la programación estructurada), y sin embargo, como todos sabemos, si cambio b, también cambia a.

Obviamente, el problema está en si la igualdad hace copia superficial o profunda. Pero, en realidad, no he venido hoy a hablar de eso. He venido a hablar de un tipo de igualdad que hoy está mucho más de moda. Un tipo de igualdad que también ha cambiado en el salto a la orientación a objetos (siendo estrictos, la anterior era asignación, no igualdad).

Y es que, en la programación estructurada, teníamos las variables, y las funciones. Ahora tenemos los objetos, los atributos, los métodos y los interfaces.

En el único sitio donde ellas permanecen es en las clases. Pero, en realidad, es una confabulación para engañarlas y tenerlas contentas. Porque todos seguimos pensando en masculino. Por eso hablamos de la clase padre.

Menos mal que nuestra ilustrísima Ministra de Igualdad no programa. O, al menos, no pasó de Pascal (claro, que si alguna vez aprendió a programar, seguro que lo hizo en Ada).

3 Responses to “La igualdad y la orientación a objetos”

  1. Moriarty Says:

    Ooooh, la clase padre, es verdad. Es totalmente antinatural. No me había dado cuenta hasta ahora!!

    Y pooobre Ministra de Igualdad no la hagamos trabajar más no sea que nos obligue a duplicar las variables para tenerlas de género masculino y femenino.

  2. PhD McClain Says:

    Disculpe, Hugo, pero hay una errata: son LAS interfaces (http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=&LEMA=interfaz)
    De todas formas, como Bibiana nos pille estamos hundidos :-)

  3. Elina Tonekawa Says:

    (has estado rápido con lo de LAS interfaces, McClain… así me gusta ;-P)

    La última cagada de la “miembra” del Ministerio de Igualdad también podría haberse evitado de haber esta recibido unas clasecitas de Java. Ha pretendido instanciar un objeto (bebé) directamente de una clase abstracta (SerVivo) sin especificar ninguna clase concreta que la extienda (por ejemplo, la más apropiada: SerHumano) ;)

    Ayyy… ¡cuanta razón tienen los americanos que a programar hay que enseñarles desde el colegio!

Leave a Reply

You must be logged in to post a comment.