Conceptos de OOPS explicados para principiantes
Publicado: 2022-12-20El papel de los programas de computadora es modelar con éxito requisitos complejos del mundo real en instrucciones comprensibles por computadora. Para lograr eso, varios paradigmas de programación funcionan con diferentes filosofías. Estos incluyen programación funcional, programación procedimental, programación orientada a objetos y más. Estos paradigmas difieren en función de cómo funcionan y, por lo tanto, son independientes del idioma.
En este artículo, veremos en profundidad la Programación Orientada a Objetos. Antes de entrar en las complejidades de OOPS, aquí hay algunos conceptos clave de OOPS en Java que debe tener en cuenta, ya que son los cuatro pilares sobre los que funciona OOPS:
- Abstracción
- Encapsulación
- Herencia
- Polimorfismo
Hablaremos sobre estos conceptos de programación orientada a objetos en profundidad en una etapa posterior de este artículo. Pero primero, comprendamos qué es exactamente la Programación Orientada a Objetos.
Tabla de contenido
¿Qué es la Programación Orientada a Objetos?
Antes de la programación orientada a objetos, la programación funcional era el paradigma de programación dominante. Lenguajes como C y COBOL siguieron este paradigma, por lo que los programas escritos usando estos lenguajes eran una serie de instrucciones. Estos utilizaron subrutinas o procedimientos para mantener los códigos fuente modulares y más legibles. El paradigma de la programación funcional se centró más en la lógica que en los datos, y el programa combinaría tanto los datos como el programa.
Los lenguajes de programación, como C ++, C #, Java y más, pasaron al enfoque de Programación Orientada a Objetos después de que C. OOP priorizara los datos sobre las instrucciones simples basadas en lógica. En esencia, un objeto es cualquier cosa que desee modelar en su programa. Podría ser cualquier cosa y todo. Si suena vago en este momento, quédese hasta el final y entenderá exactamente lo que queremos decir con esto.
¿Qué son las clases y los objetos?
La Programación Orientada a Objetos trabaja con Clases y Objetos. Por lo tanto, es importante comprender qué significan estos dos términos y en qué se diferencian entre sí. En pocas palabras, piense en las Clases como un modelo que ayuda a crear Objetos cuando los necesite.
El papel de las Clases es definir varios atributos y diferentes comportamientos. Entonces, si tuviéramos que modelar un vehículo en nuestro programa, haríamos una Clase para el vehículo y mantendríamos atributos como el número de ruedas, el color, el modelo, la edad, etc.; mientras que los comportamientos serían como arrancar, acelerar, frenar, etc. Como puede ver, los atributos y el comportamiento que hemos definido no son específicos de un vehículo. Básicamente, abarcan los diferentes comportamientos y atributos en diferentes vehículos. De esa manera, cuando desee crear una instancia de un nuevo objeto de vehículo, puede especificar los atributos por vehículo en cuestión. De esta manera, las Clases actúan como un modelo perfecto para crear nuevos objetos con los mismos atributos y comportamientos.
Entonces, así es como se verá nuestro Class Vehicle y sus diferentes atributos y comportamientos. Recuerde que hemos usado la sintaxis de Java para escribir el código, pero el paradigma de programación es independiente del lenguaje.
Vehículo de clase pública{
cadena privada _color;
privado int _modelo;
cadena privada _makeYear;
cadena privada _tipodecombustible;
inicio de vacío público () {}
aceleración de vacío público () {}
parada de vacío público () {}
}
Usando la Clase definida, podemos crear varios objetos con diferentes atributos mientras tenemos comportamientos comunes. Por ejemplo:
|
|
De esta manera, las clases de programación orientada a objetos pueden ayudarlo a simplificar el modelado de comportamientos y sistemas complejos del mundo real. Todos los datos, atributos y funciones están vinculados al objeto de cualquier clase. De esta manera, se elimina la necesidad de mantener cualquier dato global. Esta es una diferencia importante entre los enfoques de programación procedimental y programación orientada a objetos.
Con los conceptos básicos asentados, veamos en profundidad los cuatro pilares de la Programación Orientada a Objetos:
Obtenga la certificación de ciencia de datos de las mejores universidades del mundo. Aprenda los programas Executive PG, los programas de certificación avanzada o los programas de maestría para acelerar su carrera.
Abstracción
La abstracción tiene que ver con centrarse en lo que se hace en lugar de cómo se realiza la tarea. La idea detrás de la abstracción es ayudar a construir módulos independientes que puedan interactuar entre sí sin tener ninguna otra dependencia entre sí. De esta forma, el mantenimiento de un programa también se vuelve más fácil y manejable. Con Abstraction, los OOP intentan representar solo las funciones esenciales sin entrar en cómo se implementan esas funciones o cómo funcionan las partes internas del sistema.
La idea detrás de uno de los conceptos OOPS más importantes en Python es que los programadores deben concentrarse solo en las cosas que le importan directamente al módulo actual. La modificación de un módulo no debería afectar directamente a otros módulos independientes. Un programador solo necesita conocimiento del módulo actual y lo que ofrece. No hay mucha necesidad de comprender el funcionamiento de fondo del módulo para lograr lo que se requiere; por lo tanto, esa información se abstrae para obtener mejores resultados.
Si lleva la idea de abstracción más allá de la programación, se dará cuenta de que la abstracción, en esencia, está en todas partes. Los objetos con los que tratamos a diario se abstraen de nosotros en varios niveles. Por ejemplo, no sabemos cómo funcionan los frenos internos de nuestro automóvil, pero se nos ha proporcionado un pedal para aplicar los frenos mientras abstraemos el mecanismo detrás de las cortinas. De esa manera, no necesita preocuparse por cómo funciona; solo necesitas pisar el pedal.
Encapsulación
El concepto de encapsulación está íntimamente ligado al anterior concepto de abstracción. La encapsulación se trata, en esencia, de proporcionar la solución a un problema sin requerir que el usuario final comprenda completamente el dominio del problema. Para hacer esto, la encapsulación une todos los datos y el comportamiento como una sola unidad. De esa forma, se evita que el usuario final conozca los elementos internos dondequiera que se implemente la abstracción.
El usuario no puede acceder a los datos directamente y utiliza funciones expuestas para acceder a los datos cuando sea necesario. Al ocultar las partes internas del objeto, el paradigma de programación OOPS protege la integridad de los módulos y no permite que los usuarios configuren los datos internos en un estado inconsistente. Si no se hace, esto podría causar muchos problemas a largo plazo. Entonces, de esta manera, la encapsulación se trata más de exponer la complejidad de manera infalible y menos de ocultar completamente la complejidad.
Herencia
La herencia es otra característica poderosa del paradigma de la Programación Orientada a Objetos. El papel de la herencia es ordenar y organizar de manera eficiente y rápida las clases en una jerarquía para permitir que estas clases hereden el comportamiento y los atributos de las clases que se encuentran arriba en la jerarquía. En esencia, la herencia puede entenderse como un “es una relación”, que es muy similar a cómo hablamos de las cosas en el mundo real.
Por ejemplo, decimos que “un loro es un pájaro”. Eso significa que un loro es un objeto de la clase pájaro, por lo que hereda algunos atributos y comportamientos de la clase más amplia. Sin embargo, eso no será correcto si decimos que un banco es una cuenta bancaria. Así es como funciona la jerarquía en la herencia, y te permite definir comportamientos e implementaciones que luego se pueden especializar para clases especializadas. Tenga en cuenta que la herencia no funciona al revés. Por lo tanto, la clase principal nunca heredará nada de la clase secundaria. Sin embargo, las clases secundarias heredan tanto los atributos como los comportamientos de las clases principales, según la naturaleza de esos atributos y comportamientos (públicos o privados). La herencia es una forma de reutilizar su programa y puede ayudarlo a hacer que todo su código fuente sea más corto y mucho más comprensible. Pero debe recordar que no debe agregar niveles tras niveles de herencia si no es necesario.
Consulte nuestros programas de ciencia de datos de EE. UU.
Programa de certificado profesional en ciencia de datos y análisis empresarial | Maestría en Ciencias en Ciencia de Datos | Maestría en Ciencias en Ciencia de Datos | Programa de Certificado Avanzado en Ciencia de Datos |
Programa PG Ejecutivo en Ciencia de Datos | Bootcamp de programación Python | Programa de Certificado Profesional en Ciencia de Datos para la Toma de Decisiones Empresariales | Programa Avanzado en Ciencia de Datos |
Polimorfismo
El polimorfismo es uno de los muchos conceptos importantes de OOPS en Python y Java, que esencialmente se ocupa de muchas implementaciones posibles diferentes de cualquier unidad ejecutable y todas las diferencias sutiles que ocurren en segundo plano sin que el usuario se dé cuenta de esos cambios. El polimorfismo facilita la ampliación de los programas informáticos con objetos especializados sin ninguna dificultad.
Por ejemplo, si desea escribir un texto en papel, puede usar un bolígrafo, un marcador, un crayón o incluso un lápiz. Todo lo que necesita es algo que pueda caber en su mano y lo ayude a hacer símbolos mientras lo presiona contra un papel. Entonces, el acto de escribir lo ayudará a hacer símbolos en papel, mientras que el instrumento que necesita depende de su elección.
En este sentido, la herencia es una forma en que el programa logra el polimorfismo, donde la implementación personalizada del método sobrescribe el comportamiento definido en la clase heredada. Este proceso también se conoce como polimorfismo en tiempo de ejecución o anulación de métodos. Existe otra forma de polimorfismo, también conocida como sobrecarga de métodos. En eso, la herencia no entra en escena en absoluto. En la sobrecarga de métodos, el nombre del método se mantiene igual, mientras que los argumentos del método difieren según la tarea que se va a realizar.
En conclusión
Con eso, llegamos al final de nuestra discusión sobre los conceptos de OOPS en Java . Las cosas discutidas hasta ahora establecen toda la base que necesita para comenzar con la Programación Orientada a Objetos sin preocuparse por nada. Debe implementar la discusión y probar las cosas de forma práctica; después de todo, la programación se trata de practicar y perseverar.
El conocimiento de OOPS también lo ayudará en su viaje de ciencia de datos, ya que utilizará lenguajes como Python, que se basa en el paradigma OOPS. La ciencia de datos es un campo en auge, y no hay escasez de oportunidades para las personas con las habilidades y los conocimientos adecuados. Consulte nuestra maestría en ciencia de datos de upGrad, en colaboración con la Universidad de Arizona, y tenga la oportunidad de aprender de expertos de la industria junto con una sólida red de ex alumnos que lo ayudarán a lo largo de su carrera.
¿Cuáles son los cuatro conceptos de OOPS?
Los cuatro conceptos básicos de OOPS son Abstracción, Encapsulación, Herencia y Polimorfismo.
¿Cómo difieren las clases y los objetos?
Las clases son los planos de los fenómenos que se van a modelar. Los objetos, por otro lado, son instancias particulares de clases que toman prestados el comportamiento y los atributos de la clase de la que se instancian.
¿En qué idioma funciona OOPS?
OOPS es una filosofía de programación que es independiente del lenguaje. Puede trabajar en OOPS usando cualquier lenguaje de programación moderno como C++, Java, Python, Ruby, etc.