BÚSQUEDA POR SI

OOP es qué? Principios básicos de la programación orientada a objetos

Por qué programación orientada a objetostiene preferencia en la mayoría de los proyectos? OOP ofrece una forma efectiva de lidiar con su complejidad. En lugar de considerar el programa como una secuencia de instrucciones ejecutables, lo representa como un grupo de objetos con ciertas propiedades y realiza ciertas acciones con ellos. Esto lleva a la creación de aplicaciones más claras, más confiables y fáciles de seguir.

Principios básicos de orientación a objetosprogramación (OOP) se formaron porque se encontraron limitaciones en los enfoques anteriores. Entre ellos, el acceso ilimitado a los datos y una gran cantidad de enlaces que imponen restricciones a la introducción de cambios. Su conocimiento y sus razones son importantes para entender qué es programación orientada a objetos y cuáles son sus beneficios.

Lenguajes de procedimiento

C, Pascal, FORTRAN y lenguajes similares sonprocesal Es decir, cada uno de sus operadores ordena a la computadora que haga algo: obtener los datos, sumar los números, dividir entre seis, mostrar el resultado. La aplicación de lenguaje de procedimiento es una lista de instrucciones. Si es pequeño, no se requiere ningún otro principio organizacional (a menudo llamado paradigma). El programador crea una lista de instrucciones y la computadora las ejecuta.

Separación en funciones

Cuando las aplicaciones se vuelven más grandes, la listaes engorroso Pocos pueden entender más de unos cientos de instrucciones hasta que estén agrupados. Por esta razón, la función se ha convertido en una forma de hacer que las aplicaciones sean más comprensibles para sus creadores. En algunos idiomas, el mismo concepto se puede llamar subprograma o procedimiento.

La aplicación se divide en funciones, cada una de las cuales tiene un propósito e interfaz claramente definidos.

La idea de separación en procedimientos puede ampliarse al agruparlos en un objeto más grande llamado módulo, pero el principio es similar: agrupar componentes que ejecutan listas de instrucciones.

La separación en funciones y módulos es una de las piedras angulares de la programación estructural, que durante varias décadas antes del advenimiento de OOP fue un paradigma preventivo.

oop esto

Problemas de programación estructurada

Como las aplicaciones crecieron cada vez másla programación estructural grande comenzó a experimentar dificultades. Los proyectos se volvieron demasiado complicados. Los gráficos cambiaron. Un mayor número de programadores estuvieron involucrados. La complejidad creció. Los costos se dispararon, la tabla se movió más y llegó el colapso.

Un análisis de las causas de estas fallas reveló deficienciasparadigma de procedimiento. Independientemente de qué tan bien se implemente un enfoque estructurado de programación, las aplicaciones grandes se vuelven excesivamente complejas.

¿Cuáles son las causas de estos problemas asociados conlenguajes de procedimiento? Primero, las funciones tienen acceso ilimitado a datos globales. En segundo lugar, los procedimientos y significados no relacionados no modelan el mundo real.

Si consideramos estos problemas en el contexto deprograma de contabilidad de inventario, entonces uno de los elementos de datos globales más importantes es el agregado de unidades contables. Diferentes funciones pueden acceder a ellas para ingresar un nuevo valor, mostrarlo, cambiarlo, etc.

Acceso ilimitado

En un programa escrito, por ejemplo, en C, hay dos tipos de datos. Los locales están ocultos dentro de la función y no se utilizan otros procedimientos.

Cuando se deben acceder dos o más funcionesa los mismos datos, entonces el último debe ser global. Estos, por ejemplo, son información sobre los artículos a tener en cuenta. Se puede acceder a los datos globales mediante cualquier procedimiento.

En un programa grande, hay muchas funciones y muchos elementos globales. El problema con el paradigma de procedimiento es que esto conduce a un número aún mayor de enlaces potenciales entre ellos.

Tal cantidad de compuestos causaalgunas dificultades Primero, esto complica la comprensión de la estructura del programa. En segundo lugar, hace que sea difícil hacer cambios. Un cambio en un elemento de datos globales puede requerir el ajuste de todas las funciones que tienen acceso a él.

Por ejemplo, en el programa de contabilidad, alguien decide que el códigodel sujeto contabilizado no debe constar de 5 dígitos, sino de 12. Esto requerirá cambiar el tipo de datos de corto a largo. Ahora las funciones relacionadas con el código se deben cambiar para que funcionen con el nuevo formato.

Cuando los elementos cambian en una aplicación grande,Es difícil decir qué procedimientos tienen acceso a ellos. Pero incluso si esto se aclara, cambiarlos puede llevar a un trabajo incorrecto con otros datos globales. Todo está conectado con todo lo demás, por lo que un cambio en un lugar estará en otro.

¿Qué hay de programación?

Modelado del mundo real

El segundo y más importante problema de procedimientoEl paradigma es que su ubicación de datos y funciones individuales modela mal las cosas en el mundo real. Aquí tratamos con objetos tales como personas y autos. No se parecen a datos o funciones. Los objetos reales complejos tienen atributos y comportamiento.

Atributos

Ejemplos de atributos (a veces llamadoscaracterísticas) para las personas son el color de ojos y el título del trabajo, para los automóviles: potencia y número de puertas. Al final resultó que, los atributos en el mundo real son equivalentes a los datos en el programa. Tienen significados específicos, como el azul (color de los ojos) o cuatro (el número de puertas).

Comportamiento

Comportamiento es que los objetos del mundo realproducir en respuesta a algún efecto. Si le pides a las autoridades que aumenten sus salarios, la respuesta es "sí" o "no". Si presiona el freno, el carro se detiene. La pronunciación y la parada son ejemplos de comportamiento. El comportamiento es como un procedimiento: está llamado a hacer algo, y lo hace. Por lo tanto, los datos y las funciones no son por sí mismos modelos de objetos del mundo real de manera eficiente.

Solución de problemas

Objeto en OOP se representa como una coleccióndatos y funciones. Solo los procedimientos que se llaman funciones miembro en C ++ le permiten obtener sus valores. Los datos están ocultos y protegidos del cambio. Los valores y funciones están encapsulados en una unidad. La encapsulación y el ocultamiento son los términos principales en la descripción de OO-languages.

Si desea cambiar los datos, sabrá exactamente qué funciones interactúan con ellos. Ningún otro procedimiento puede acceder a ellos. Esto simplifica la escritura, la depuración y el mantenimiento del programa.

La aplicación, por regla general, consta de varios objetos que interactúan entre sí, llamando a las funciones miembro.

Hoy el lenguaje más utilizado de OOP(programación orientada a objetos) - C ++ (plus-plus). Java carece de algunas funciones, como punteros, plantillas y herencia múltiple, lo que lo hace menos poderoso y versátil que C ++. C # aún no ha alcanzado la popularidad de C ++.

Cabe señalar que los llamadoslas funciones miembro en C ++ se llaman métodos en algunos otros lenguajes OO, como Smalltalk. Los elementos de datos se llaman atributos. Llamar a un método de objeto es enviarle un mensaje.

Programación orientada a objetos con más

Analogy

Puede enviar objetos a los departamentos de la compañía. En la mayoría de las organizaciones, los empleados no trabajan un día con los cuadros, el siguiente en la nómina, y luego una semana haciendo ventas al por menor. Cada departamento tiene su propio personal con responsabilidades claramente asignadas. También hay datos propios: salarios, cifras de ventas, registros de empleados, etc. Las personas en los departamentos trabajan con su información. La separación de la compañía, por lo tanto, facilita el control sobre sus actividades y mantiene la integridad de los datos. La contabilidad es responsable de la nómina. Si necesita saber el monto total de los salarios pagados en la sucursal del sur en julio, no necesita hurgar en el archivo. Es suficiente enviar una nota a la persona a cargo, esperar a que esta persona tenga acceso a los datos y enviar una respuesta con la información requerida. Esto garantiza el cumplimiento de las normas y la ausencia de interferencias externas. De la misma manera, el objeto en el OOP proporciona la organización de la aplicación.

Debe recordarse que la orientación a los objetos no esse refiere a los detalles del programa. La mayoría de las sentencias C ++ corresponden a operadores de lenguaje de procedimientos como C. De hecho, las funciones miembro en C ++ son muy similares a las funciones en C. Solo un contexto más amplio permitirá establecer si la instrucción es de procedimiento o de objeto.

objeto en oop it

Objeto en OOP: definición

Al considerar el problema de programación paraOO lenguaje, en lugar de preguntas sobre su división en funciones separadas, surge el problema de la separación en objetos. El pensamiento OOP hace que sea mucho más fácil desarrollar aplicaciones. Esto se debe a la similitud de software y objetos reales.

¿Qué cosas se convierten en objetos en OOP? A continuación están las categorías típicas.

El objeto físico en OOP es:

  • transporte en patrones de flujo;
  • elementos eléctricos en programas de diseño de circuitos;
  • países en el modelo de economía;
  • aeronave en el sistema de control de tráfico aéreo.

Elementos del entorno informático del usuario:

  • menú;
  • ventanas;
  • gráficos (línea, rectángulo, círculo);
  • teclado, mouse, impresora, unidades de disco.

Gente:

  • empleados;
  • estudiantes;
  • clientes;
  • vendedores.

Datos:

  • libro de contabilidad;
  • un asunto privado;
  • diccionario;
  • tabla de latitudes y longitudes de asentamientos.

La conexión entre objetos del mundo real y OOP fue el resultado de una combinación de funciones y datos: revolucionaron la programación. No existe una correspondencia tan cercana en los idiomas de procedimiento.

objeto en una definición de oop

Clase

Los objetos en OOP son miembros de clases. ¿Qué significa esto? Los lenguajes de programación tienen tipos de datos incorporados. El tipo int, es decir, un entero, está predefinido en C ++. Puede declarar cualquier número de variables int.

De manera similar, se define un conjunto de objetos de la misma clase. Define las funciones y los datos incluidos en sus objetos sin crearlos, al igual que int no crea variables.

La clase en OOP es una descripción de varios objetos similares. Prince, Sting y Madonna son cantantes. No hay una sola persona con ese nombre, pero las personas pueden ser llamadas así si tienen las características apropiadas. El objeto OOP es una instancia de la clase.

Herencia

En la vida, las clases se dividen en subclases. Por ejemplo, los animales se dividen en anfibios, mamíferos, aves, insectos, etc.

El principio de este tipo de división es quecada subclase tiene características comunes con la clase a partir de la cual ocurre. Todos los autos tienen ruedas y un motor. Estas son las características definitorias de los vehículos. Además de las características generales, cada subclase tiene sus propias características. Los autobuses tienen muchos asientos y los camiones tienen espacio para transportar cargas pesadas.

Del mismo modo, la clase base puede convertirse en un padrevarias subclases derivadas que se pueden definir para que compartan sus características con la adición de las suyas propias. La herencia es similar a una función que simplifica el programa de procedimiento. Si varias partes del código hacen casi lo mismo, puede extraer los elementos comunes y ponerlos en un solo procedimiento. Tres secciones de aplicación pueden llamar a una función para realizar acciones comunes, pero también pueden producir sus propias operaciones. Del mismo modo, la clase base contiene datos comunes para el grupo derivado. Al igual que las funciones, la herencia reduce el programa OO y aclara la interconexión de sus elementos.

objeto en oop

Reutilizar

Después de crear y depurar la clase, puedeser transmitido a otros programadores para su reutilización en sus propias aplicaciones. Esto es similar a una biblioteca de funciones que se pueden incluir en diferentes aplicaciones.

En OOP, la herencia es una extensión de la ideauso múltiple Desde la clase existente, sin cambiarla, puede crear una nueva con la adición de otras funciones. La facilidad de reutilizar el software existente es una ventaja importante de OOP. Se cree que esto proporciona un aumento en el rendimiento de la inversión inicial.

Crear nuevos tipos de datos

Los objetos son convenientes para crear nuevos tipos de datos. Supongamos que el programa utiliza valores bidimensionales (por ejemplo, coordenadas o latitud y longitud), y existe el deseo de expresar acciones con ellos operaciones aritméticas:

position1 = posición + origen,

donde posición1, posición y origen son pares de valores numéricos independientes. Crear una clase que incluya estos dos valores y declarar variables con sus objetos crea un nuevo tipo de datos.

principios básicos de la programación orientada a objetos

Polimorfismo, sobrecarga

Operadores = (igual) y + (más) utilizados enaritmética posicional anterior, no actúe igual que con los tipos incorporados, como int. La posición de los objetos, etc. no están predefinidos, pero están programados. ¿Cómo saben estos operadores cómo manejarlos? La respuesta es que para ellos puedes definir nuevos patrones de comportamiento. Estas operaciones serán funciones miembro de la clase Position.

Uso de operadores o procedimientos endependiendo de con qué trabajan, se llama polimorfismo. Cuando un operador existente, como + o =, puede trabajar con un nuevo tipo de datos, se dice que está sobrecargado. La sobrecarga en OOP es un tipo de polimorfismo. Es su característica importante.

El libro sobre la OOP "Programación orientada a objetos para Dummies" permitirá que todos se familiaricen con este tema con más detalle.

</ p>
  • Calificación: