Objetos y clases — Informática, 14–17 años
La programación orientada a objetos reúne los datos con las operaciones que les corresponden. La idea no consiste solo en llamar objetos a las cosas, sino en organizar el programa mediante responsabilidades y mensajes.
Una clase es un plan; un objeto es una cosa
Una clase describe lo que sabe y puede hacer un tipo de cosa. Un objeto es una cosa concreta creada a partir de esa descripción, con sus propios valores. Una clase Bicicleta puede describir color, velocidad y frenar(); bici1 y bici2 pueden tener colores y velocidades distintos y compartir el mismo diseño.
¿Por qué unir datos y acciones?
El problema aparece cuando cualquier parte de un programa grande puede cambiar cualquier dato. Entonces un cambio puede romper muchos lugares sin relación y no está claro quién es responsable. Los objetos dan a cada parte una tarea clara y una forma controlada de interactuar. La idea creció para organizar programas cada vez mayores y cambiantes.
Una pequeña cuenta bancaria
Crea un objeto Cuenta con saldo = 100. Llamar a ingresar(25) cambia el saldo a 125; llamar a retirar(40) lo cambia a 85. Si se pide retirar(100), el objeto puede rechazarlo porque su regla dice que el saldo no puede ser negativo. La cuenta protege sus datos y ofrece acciones útiles.
No todo sustantivo necesita una clase
Un error tentador es convertir cada sustantivo de una descripción en una clase: Cliente, Dirección, Botón, Color y demás. Parece lógico porque las clases se parecen a cosas con nombre en el lenguaje cotidiano. Pero una clase solo ayuda cuando tiene datos, comportamiento o identidad que gestionar. Demasiadas clases pequeñas pueden ocultar una idea sencilla.
Objetos en software real
En una aplicación móvil, los objetos pueden representar a un usuario, un mensaje y un reproductor de música. Cada uno gestiona sus detalles y coopera mediante operaciones claras, de modo que un cambio sea más seguro: añadir un estilo de mensaje no tiene por qué modificar la seguridad de la cuenta. Es útil con muchas clases de cosas que interactúan, pero no es la mejor forma para todo programa.
Sigue explorando
Otros idiomas
Cargando MyLeoNes™…