Abstracción

El primer principio de la programación orientada a objetos (POO) se conoce como abstracción. Bajo este principio, la información de los elementos que intervienen en un sistema de cómputo se agrupa en clases o conjuntos de tipo de elementos que pueden interactuar con el programa desarrollado.

La información almacenada se modela con atributos o campos en la definición del tipo de dato (clase). A partir de la clase, pueden declararse y utilizarse dentro del programa una o varias copias de la clase o simplemente objetos. Cada objeto tiene una copia de los elementos declarados a partir de una clase, el contenido de todos estos datos se conoce como estado del objeto; es decir, qué información tiene almacenada el objeto en cada momento de la ejecución del programa.

Un segundo elemento que tienen las clases se refiere a los métodos comunes (código o conjuntos de instrucciones) a todos los objetos que definen la forma de interactuar con cada objeto para obtener información, modificar el estado del objeto o activar a partir de un mensaje un comportamiento o acciones que debe ejecutar el objeto. Los métodos, también se conocen en otros lenguajes como subrutinas, subprocesos, procedimientos o funciones.

Bajo el principio de abstracción, debe entenderse que no se van a modelar los elementos de la vida real en su totalidad dentro de un programa de cómputo, sino que sólo se incluirán aquellos atributos o métodos relativos a los alcances del sistema.

Completar tabla

De esta forma, podríamos enlistar varios atributos de una persona como a continuación se muestra. Selecciona y escribe una letra X, dependiendo del sistema, en qué casos ocuparías los siguientes campos:

Estudiante Paciente médico Persona en censo
Nombre(s) [x] [x] [  ]
Apellido paterno [x] [x] [  ]
Apellido materno [x] [x] [  ]
Sobrenombre [  ] [  ] [  ]
RFC [  ] [x] [  ]
Número de cuenta [x] [  ] [  ]
CURP [x] [x] [  ]
Fecha de nacimiento [x] [x] [x]
Edad [x] [x] [x]
Correo electrónico [x] [x] [  ]
Sexo [x] [x] [x]
Estatura [  ] [x] [x]
Religión [  ] [  ] [x]
Ingreso mensual [  ] [  ] [x]
Nacionalidad [x] [  ] [x]
Enfermedades [  ] [x] [  ]
Velocidad al correr [  ] [x] [  ]

Depende del contexto del problema, algunos atributos serían pertinentes y en otros no tiene sentido representar la información en un objeto o clase.

Completar tabla

Análogamente sucede con el comportamiento que puede tener cada objeto de una clase, sólo se modelarán aquellas acciones que estén relaciona con el sistema, así, para el ejemplo anterior, podríamos determinar qué acciones corresponden para un estudiante, un paciente o una persona entrevistada en un censo:

Estudiante Paciente médico Persona en censo
Registrar nombre(s) [x] [x] [  ]
Sobrenombre [  ] [  ] [  ]
Asignar RFC [  ] [x] [  ]
Asignar número de cuenta [x] [  ] [  ]
Asignar CURP [x] [x] [  ]
Asignar fecha de nacimiento [x] [x] [x]
Obtener edad [x] [x] [x]
Asignar correo electrónico [x] [x] [  ]
Asignar sexo [x] [x] [x]
Asignar estatura [  ] [x] [x]
Conocer religión [  ] [  ] [x]
Registrar ingreso mensual [  ] [  ] [x]
Registrar nacionalidad [x] [  ] [x]
Levantar perfil médico [  ] [x] [  ]
Iniciar pruebas de resistencia física [  ] [x] [  ]

Depende del contexto del problema, algunos métodos serían pertinentes y en otros no tienen sentido para representar el comportamiento de un objeto o clase.

El principio de abstracción consiste en modelar de atributos y métodos pertinentes en clases y objetos en un sistema que sean referentes al problema que se quiere resolver.

A diferencia del lenguaje matemático, donde normalmente las variables o funciones suelen expresarse con un solo símbolo o letra de algún alfabeto, en los lenguajes de programación se utilizan una o varias palabras para identificar a los elementos (clases, atributos, variables, métodos) en un programa y se busca que estos sean descriptivos de la información que almacenan o de las acciones que se ejecutan al invocarlos. Algunos ejemplos serían Figura, perimetro, calcularArea(), etc., que son palabras que se utilizan en lo que se conoce como el dominio del problema o el lenguaje que se utiliza en la definición del problema; por supuesto, se sugiere seguir algunas reglas de nomenclatura.