Anuncio
Si has hecho algo programación para principiantes, o incluso comenzó a buscar en diferentes lenguajes, probablemente haya encontrado la frase "programación orientada a objetos" (o "OOP").
Hay todo tipo de explicaciones técnicas sobre lo que es, pero hoy vamos a analizar la definición de la programación orientada a objetos de una manera simple.
Antes de comenzar: lenguajes de procedimiento
Para comprender qué es un lenguaje de programación orientado a objetos, debe comprender qué reemplazó. Los primeros lenguajes de programación eran de procedimiento, llamados así porque el programador definiría un conjunto muy específico de procedimientos que la computadora emprendería.
En los primeros días, los procedimientos se escribían en tarjetas perforadas. Esos pasos tomaron datos, realizaron una secuencia de acciones sobre esos datos y luego emitieron nuevos datos.
Los lenguajes de procedimiento funcionaron bien durante un tiempo (y algunos todavía están en uso). Pero cuando desea programar algo más allá de una secuencia básica de pasos, los lenguajes de procedimiento pueden volverse difíciles de administrar. Ahí es donde entra la programación orientada a objetos.
El objeto de la programación orientada a objetos
Entonces, ¿qué es la programación orientada a objetos?
El primer lenguaje orientado a objetos (generalmente aceptado como Simula) introdujo la idea de objetos. Los objetos son colecciones de información que se tratan como una entidad singular.
Profundizaremos en lo que eso realmente significa en un segundo con un ejemplo, pero primero tenemos que hablar sobre clases. Las clases son como preobjetos. Contienen una lista de atributos que, cuando se definen, se convierten en un objeto.
Tomemos el ejemplo de programar un juego de ajedrez. Podríamos tener una clase llamada Piece. Dentro de Piece, tenemos una lista de atributos:
- Color
- Altura
- Forma
- Movimiento permitido
Un objeto simplemente define una instancia particular de una cosa que pertenece a esa clase.
Entonces podríamos tener un objeto llamado WhiteQueen. Ese objeto tendría definiciones para los cuatro atributos (blanco, alto, cilíndrico con almenas, cualquier número de espacios en cualquier dirección). También podría tener métodos o funciones.
¿Qué hace que esto sea mucho mejor que el enfoque procesal?
En resumen, lenguajes de programación orientados a objetos (como Java) facilita la organización de datos y código de una manera más versátil para proyectos más grandes.
Para discutirlo con un poco más de detalle, hablaremos sobre los cuatro conceptos básicos de la programación orientada a objetos.
Programación Orientada a Objetos: Abstracción
El hecho de que quiera usar algo no significa que necesite saber cómo funciona. Una máquina de café espresso, por ejemplo, es compleja. Pero no necesita saber cómo funciona. Solo necesita saber que cuando presione "Encendido", obtendrá café expreso.
Lo mismo es cierto para los objetos en la programación orientada a objetos. En nuestro ejemplo de ajedrez, podemos tener un método move (). Ese método podría requerir muchos datos y otros métodos. Es posible que necesite la posición inicial y las variables de posición final. Podría usar otro método para determinar si ha capturado una pieza.
Pero no necesitas saber eso. Todo lo que necesita saber es que cuando le dice a la pieza que se mueva, se mueve. Eso es abstracción.
Programación Orientada a Objetos: Encapsulación
La encapsulación es una de las formas en que la programación orientada a objetos crea abstracción. Cada objeto es una colección de datos que se trata como una entidad única. Y dentro de esos objetos hay datos, tanto variables como métodos.
Las variables dentro de un objeto generalmente se mantienen privadas, lo que significa que otros objetos y métodos no pueden acceder a ellas. Los objetos solo pueden verse afectados mediante el uso de sus métodos.
Un objeto Bishop puede contener varias piezas de información. Por ejemplo, podría tener una variable llamada "posición". Esa variable es necesaria para usar el método move (). Y, por supuesto, tiene un color.
Al hacer que la variable de posición sea privada y el método move () público, un programador protege la variable move de ser afectada por cualquier otra cosa. Y si el color es una variable privada, no hay forma de que otro objeto lo cambie a menos que haya un método que permita el cambio. (Lo que probablemente no tendría, ya que el color de la pieza debería permanecer constante).
Estas variables y métodos se mantienen dentro del objeto Bishop. Debido a que están encapsulados, un programador podría hacer un cambio en la estructura o el contenido del objeto sin preocuparse por la interfaz pública.
Programación Orientada a Objetos: Herencia
Además de las clases, los lenguajes de programación orientados a objetos también tienen subclases. Estos contienen todos los atributos de la clase padre, pero también pueden contener otros atributos.
En nuestro juego de ajedrez, las piezas de peón necesitan un método que las convierta en otras piezas si llegan al final del tablero. Lo llamaremos el método transformPiece ().
No todas las piezas necesitan el método transformPiece (). Así que no querríamos ponerlo en la clase Piece. En cambio, podemos crear una subclase llamada Peón. Debido a que es una subclase, hereda todos los atributos de Piece. Entonces, una instancia del peón de la subclase incluye un color, altura, forma y movimiento permitidos.
Pero también incluye el método transformPiece (). Ahora nunca tenemos que preocuparnos por usar accidentalmente esa función en una torre. Aquí hay una explicación técnica:
Crear subclases también ahorra mucho tiempo. En lugar de crear nuevas clases para todo, los programadores pueden crear una clase base y luego extenderla a nuevas subclases cuando lo necesiten. (Sin embargo, vale la pena señalar que confiar demasiado en la herencia es malo 10 principios básicos de programación que todo programador debe seguirSiempre escriba código que pueda ser mantenido por cualquier persona que pueda terminar trabajando en su software. Con ese fin, aquí hay varios principios de programación para ayudarlo a limpiar su acto. Lee mas .)
Programación Orientada a Objetos: Polimorfismo
El polimorfismo es el resultado de la herencia. Comprender completamente el polimorfismo requiere algunos conocimientos de programación, por lo que solo vamos a seguir con lo básico aquí. En resumen, el polimorfismo permite a los programadores usar métodos del mismo nombre, pero con diferentes objetos.
Por ejemplo, nuestra clase Piece podría tener un método move () que mueve una pieza un espacio en cualquier dirección. Eso funciona para la pieza del rey, pero no para nada más. Para solucionar este problema, podemos definir el nuevo método move () en la subclase Rook que define el movimiento como un número ilimitado de espacios hacia adelante, hacia atrás, hacia la izquierda o hacia la derecha.
Ahora, cuando un programador invoca el método move () y usa una pieza como argumento, el programa sabrá exactamente cómo debe moverse la pieza. Esto ahorra un montón de tiempo al tratar de averiguar cuál de los muchos métodos diferentes debe usar.
Programación orientada a objetos en pocas palabras
Si su cabeza gira un poco después de esas cuatro últimas definiciones, no se preocupe demasiado. Estas son las cosas principales que debe recordar:
- La programación orientada a objetos recopila información en entidades individuales llamadas objetos.
- Cada objeto es una sola instancia de una clase.
- La abstracción oculta el funcionamiento interno de un objeto cuando no es necesario verlo.
- La encapsulación almacena variables y métodos relacionados dentro de los objetos y los protege.
- La herencia permite que las subclases utilicen atributos de las clases primarias.
- El polimorfismo permite que los objetos y métodos aborden múltiples situaciones diferentes con una sola interfaz.
Si puede recordar esos puntos, tendrá un buen manejo de lo que es la programación orientada a objetos. Los cuatro conceptos básicos de la programación orientada a objetos, como mencioné, pueden ser un poco difíciles de manejar. Pero una vez que comience a programar, se volverán más claros.
Recuerde que solo hemos discutido generalidades en este artículo. Diferentes lenguajes orientados a objetos tendrán sus propias peculiaridades y formas de hacer que las cosas sucedan. Una vez tú elige el idioma adecuado para ti Buscando los mejores lenguajes de programación? ¡Empieza aqui!Si usted es completamente nuevo en los lenguajes de programación o está buscando entrar en un nuevo tipo de programación, una de las preguntas más importantes es: "¿Qué lenguaje de programación es el adecuado para mí?" Lee mas , comenzará a aprender cómo pone en práctica los principios de OOP.
Dann es un consultor de estrategia de contenido y marketing que ayuda a las empresas a generar demanda y clientes potenciales. También bloguea sobre estrategia y marketing de contenidos en dannalbright.com.