Programación Orientada a Objetos

Page 16

A M A C I Ó
O R I E N T A D A A O B J E T O S U N A R E V I S T A P A R A E L P R O G R A M A D O R E D I C I Ó N 2 0 2 3 - M A R Z O
Herencia
P R O G R
N
Conceptos esenciales ¿Cuáles son?
¿Qué es? Polimorfismo ¿Qué significa? Ocultamiento vs. Encapsulamiento ¿Son lo mismo?

EDITORIAL

En el mundo que vivimos hoy en día donde una computadora es capaz de realizar cualquier tipo de tarea sin tan siquiera demorarse mucho tiempo, todo ello con la finalidad de facilitar la vida a las personas. Este es uno de los propósitos principales de la expansión tecnológica que vivimos hoy en día, desarrollar programas que realicen diferentes tipos de tareas de forma automática para que el humano se pueda enfocar en las que considere más importantes.

La programación tal y como la conocemos hoy en día inicio en el año 1957 por el científico John Backus cuando creó el primer lenguaje de alto nivel, es decir, que tenía instrucciones que el humano podía escribir fácilmente y entender al igual que la computadora, por lo que era un lenguaje que era entendible por la capacidad cognitiva humana. Luego de allí comenzó a crecer este campo exponencialmente, ya que mucha más cantidad de personas podía entender con mayor facilidad las instrucciones que escribían al computador.

En un inicio, consistía en escribir instrucciones de forma secuencial que el computador iba interpretando y tomando decisiones según la situación presentada y el código que escribió el desarrollador. A pesar de que se crearon estructuras de control un poco más complejas, se fue quedando corto con la expansión que tenía el desarrollar programas para el mundo porque ya no era solamente a una empresa que se le desarrollaba el software, comenzó a ser para el usuario cotidiano, diferentes tipos de empresas, organizaciones, etc.

Y es por ello que nace el tema de la revista actual, la programación orientada a objetos, que no es más que la solución al problema que se fue presentando con el pasar del tiempo acerca de la complejidad y expansión de los sistmeas, este es un paradigma de la programación que permite aumentar la complejidad, tamaño y mantenimiento de los programas.

Autor Jorge Ramírez
ÍNDICE Directorio Introducción Conceptos esenciales Herencia Polimorfismo Ejemplo Ejemplo Ocultamiento vs. Encapsulamiento 1 2 3 6 7 9 10 11
Docente Karlis Zambrano Autor Jorge Ramírez 1
DIRECTORIO Universidad Bicentenaria de Aragua

INTRODUCCIÓN

La programación, no es más que la acción de programar, con la finalidad de desarrollar un producto que realice tareas de forma automática o que resuelva problemas de la misma forma. Este es un trabajo que viene creciendo rápidamente por la expansión que tiene la tecnología a día de hoy.

Programar es la acción de escribir sentencias en un lenguaje de programación para que la computadora pueda realizar lo que se le ordena correctamente. Desde sus inicios esta ha evolucionado de tal forma que a día de hoy podemos encontrar sistemas altamente complejos como puede ser los sistemas bancarios, sistemas de almacenamientos en nube, inteligencia artificial que es capaz de analizar información encontrada en internet y aprender, entre muchas otras tecnologías.

Estos son sistemas completos que llegan a ser bastante cantidad de acciones que realizan, lo que es un reto para el programador porque debe poder entender el entorno donde se va a utilizar el software a desarrollar, además que implementar diversas metodologías para preservar un código a la par de optimizado, que sea limpio. Esto con la amplitud de código que se debe producir llega a ser cada vez más difícil porque mientras más código, más se esconde cada mínimo error que pueda existir.

Es por esto que se desarrolla este paradigma o abstracción de la programación, que es la programación orientada a objetos (POO), que permite diseñar objetos dentro de la arquitectura del programa en forma de concepto. Este paradigma lo que hizo fue un cambio de mentalidad de este mundo, ya que la solución de los problemas paso de ser una serie de instrucciones a seguir a la concepción de objetos que están involucrados en la solución.

2

Para poder entender con mayor precisión este paradigma, dichos conceptos son los siguientes:

CONCEPTOS ESENCIALES CLASE

Esta es como una plantilla que se utiliza para crear objetos a la hora de ejecutar un programa, esta plantilla contiene los atributos y métodos predefinidos que tendrán los objetos que se instanciarán con esta plantilla.

Todos los objetos que se creen en base a una clase tendrán los mismos atributos y los mismos métodos, sólo que van a variar los valores de loa atributos, y van a variar los resultados que devuelvan los métodos más el procedimiento seguirá siendo el mismo.

OBJETO

Un objeto es una instancia de una clase, es decir que es cuando se le agrega un nombre, se otorgan valores a los atributos. Visto de otra forma es que se le da significado a la abstracción, añadiéndole valor a las diferentes variables de los atributos que representan las caracerísticas del objeto de la vida real.

Por lo que un objeto es cualquier cosa que pueda representarse en forma conceptual, claro está que habrá algunos que son más difíciles de modelas que otros.

3

Los atributos son lo que representan las características de los objetos, mediante ellos se describen los elementos esenciales que forman parte del objeto. Mediante ellos se logra una representación más precisa acerca del objeto.

Los objetos pueden compartir atributos, en el sentido que como se pueden crear diversos objetos de una sola clase, comparten los atributos más son los valores de los atributos los que le dan el significado más preciso a cada objeto

ATRIBUTO MÉTODO

Los métodos son como el comportamiento del objeto del mundo real, estos son básicamente funciones como las que se conocen desde los inicios de la programación. Pero la diferencia está en que esta se almacena dentro del objeto y guarda relación con el mismo.

Estos permiten operar sobre los métodos del objeto, permiten tanto mostrar los atributos del objeto como modificarlos, incluso, se pudiese operar sobre otros objetos con los métodos de otro. En otras palabras, los métodos mejoran la abstracción del objeto dentro del código.

4

Constructor

Esta es una clase especial de método que tienen todos los objetos, esta es la que permite crear e inicializar al objeto que se crea a partir de una clase, aquí es donde se le asigna valor a los diferentes atributos que pueda poseer el objeto y ya sería una instancia que ocupa un espacio de memoria conservando dentro de sí sus diversos atributos con sus valores al igual que los métodos que posea.

Este es un método que se utiliza siempre que se va a crear un objeto, es importante saber que lo que realiza el constructor lo tiene que definir el programador, es decir la solicitud de los diferentes atributos para almacenarlos en las variables internas del objeto (atributos)

5

HERENCIA

La herencia es uno de los principales beneficios y elementos de la programación orientada a objetos, esta permite crear objetos similares que compartan algunos atributos pero que tengan diferencias más pequeñas conceptualmente, además de conocer que tengan algún tipo de relación entre sí.

Esta se representa es con las clases, esto es para poder crear más métodos y/o atributos que diferencien a la superclase (nombre otorgado a la clase que comparte sus atributos y métodos) y a la subclase (nombre otorgado a la clase que hereda los atributos y métodos de la superclase). Las clases herederas tienen todo lo que tiene la clase de la que heredan, es decir que en un inicio son totalmente iguales pero con otro nombre, claro está que crear clases que sean iguales pero con nombres diferentes no tiene mucho sentido.

Por ello debe conocerse la relación y los límites conceptuales que tienen los objetos entre sí, se conoce que los objetos que son aptos de cumplir esto es cuando dos objetos tienen una relación de "es un", algunos ejemplos pueden ser que la harina es un alimento, un jugo es una bebida, un carro es un vehículo, etc.

Vehículo

6
Carro Moto

Ejemplo

Una forma de ejemplificar este concepto es si se tiene que crear para un sistema informático para una biblioteca y se tenga una clase llamada "libro" con los atributos de autor, título, editorial, precio y descripción. Su representación en PHP es:

class Libro { protected $titulo; protected $autor; protected $editorial; protected $precio; protected $descripcion;

public function construct($titulo, $autor, $editorial, $precio, $descripcion) {

$this->titulo = $titulo; $this->autor = $autor; $this->editorial = $editorial; $this->precio = $precio; $this->descripcion = $descripcion;

De allí se pueden sacar dos subclases "libroFisico" y "libroElectronico". La clase de "libroFisico" tendrá atributos como número de páginas, tamaño y peso, su representanción en PHP es:

class LibroFisico extends Libro { private $numPaginas; private $tamano; private $peso;

public function

construct($titulo, $autor, $editorial, $precio, $descripcion, $numPaginas, $tamano, $peso) { parent:: construct($titulo, $autor, $editorial, $precio, $descripcion);

$this->numPaginas = $numPaginas; $this->tamano = $tamano; $this->peso = $peso;

}
}
} }
7

Y por último el libro electrónico que tendrá el formato de archivo y el tamaño del archivo, esta es su representación en PHP:

class LibroElectronico extends Libro { private $formatoArchivo; private $tamanoArchivo; public function construct($titulo, $autor, $editorial, $precio, $descripcion, $formatoArchivo, $tamanoArchivo, $duracionBateria) { parent:: construct($titulo, $autor, $editorial, $precio, $descripcion);

$this->formatoArchivo = $formatoArchivo; $this->tamanoArchivo = $tamanoArchivo; }

8

POLIMORFISMO

El polimorfismo es la capacidad que permite la programación orientada a objetos de hacer que dos objetos se comporten de forma distinta según el contexto en que se utilicen, esto hace que el código se vuelva mucho más flexible y reutilizable. Esto es posible mediantee dos únicas opciones: la herencia o interfaces.

La herencia, como se vió previamente, es la capacidad que tienen las clases de obtener atributos y métodos que fueron escritos en otra clase, por lo tanto al hacer esto no solo se puede hacer que la nueva clase sea más específica que la anterior, si no que si se posee un comportamiento cualquiera se puede reecribir y hacer que solo funcione para aquellos objetos que son creados a partir de dicha clase.

Por otro lado están las interfaces, que es como una plantilla para las clases en las que se pueden mencionar únicamente las funciones que deben implementar las clases, no se debe escribir las operaciones internas. Esto hace que al momento de definir una clase que utilice una interfaz deba de implementar los métodos que fueron establecidos en ella, y además, escribir las instrucciones que debe llevar dicho método en su interior; esto hace que cada que la clase nueva sea declarada, deba implementar el método y escribir el código que debe ir dentro del método. Esto hace que cada clase que implemente esa interfaz pueda tener acciones con el mismo nombre pero que realicen operaciones diferentes.

9

Ejemplo

Suponiendo el caso en que se tenga que realizar un sistema donde se deba crear clases de animales, se puede implementar una interfaz llamadas animal con un método que sea "hablar()" que lo que haga es hacer que el animal emita un sonido. El código de PHP sería:

interface Animal { public function hablar();

Ahora se crean dos clases que utilicen esa interfaz, que en este caso serán "perro" y "gato", por lo que el código sería el siguiente:

class Perro implements Animal { public function hablar() { echo "¡Guau!";

class Gato implements Animal { public function hablar() { echo "¡Miau!";

Y para llegar a crear los objetos y ejecutar los métodos de forma adecuada, sería declarando una variable que almacene al objeto de la siguiente forma:

$perro = new Perro();

$gato = new Gato();

$perro->hablar();

$gato->hablar();

De esta forma estaríamos utilizando un mismo método que comparten los objetos, por medio de la interfaz, pero que terminan realizando acciones totalmente diferentes, ya que uno emite un "Guau" y el otro un "Miau". En esto es en lo que consiste el polimorfismo, esto hace que el programador solo sepa que debe implementar el método "hablar()" y según el animal con que lo utilice emitirá un sonido particular.

10
}
} }
} }

OCULTAMIENTO VS. ENCAPSULAMIENTO

Estos son dos conceptos que a simple vista pueden confundirse un poco porque pueden parecer lo mismo, pero no lo son. Eso sí, están relacionados solo que tienen conceptos diferentes.

Ocultamiento

Es la capacidad que tienen los objetos de exponer solamente aquellos detalles de comportamiento que sean necesarios para el resto del sistema, de este modo logrando permanecer en privada aquella información de carácter delicado. Esto permite dos cosas: restringir y controlar el uso de la clase; restringe porque habrá algún comportamiento de la clase que no podrá ser accedido por las otras clases, y controla el uso de la clase porque se pueden establecer métodos para realizar cambios en la clase y se pueden establecer que se necesiten cumplir ciertas condiciones para ello.

Encapsulamiento

El encapsulamiento es lo que permite que todos los datos de un objeto estén en un solo contenedor y prevalezca la relación entre sí, es decir, que es la capacidad de almacenar los atributos y métodos en un solo lugar, por ello encapsulamiento porque es como una capsula que almacena todo lo relacionado con el objeto.

En conclusión, son dos conceptos parecidos que llegan a confundirse, el ocultamiento tiene que ver con la privatización de la información, mientras que el encapsulamiento tiene que ver más con la forma en que se almacenan todos los datos y el ocultamiento de la estructura.

11

CONCLUSIÓN

Como se pudo ver en toda la revista es importante conocer los conceptos de la programación orientada a objetos que permite que hoy en día tengamos las soluciones para cualquier tipo de situación que se pueda presentar, la tecnología tiene respuestas para casi todo. Y es gracias al gran cambio de perspectiva desde que se diseñó la programación orientada a objetos, que permite desarrollar sistemas altamente complejos con mayor rendimiento.

Los conceptos de clase, atributo, método y objeto son claves para llegar a entender el funcionamiento de este paradigma de la programación, ya que son los fundamentos del mismo. Porque este paradigma es la concepción de objetos para la solución de situaciones informáticas, y mediante la comprensión de esos conceptos se pueden llegar a estructurar los objetos informáticos adecuadamente y entender el comportamiento que tendrán dentro del sistema.

La herencia y el polimorfismo son dos conceptos que introduce este paradigma, son capacidades que permiten implementar mayor complejidad y flexibilidad a los programas que se desarrollan, estableciendo esencialmente relaciones entre objetos y estableciendo barreras conceptuales entre unos y otros, evitando la redundancia en los objetos o tener dos clases diferentes que creen el mismo objeto.

Lo último visto fue la diferencia entre ocultamiento y encapsulamiento, que es fácil de confundir porque utilizando un poco la imaginación podemos relacionar la misma imagen con ambos conceptos. Pero que no sean lo mismo no quiere decir que no estén relacionados, ya que funcionan en conjunto y esta es una de las cosas que permite obtener múltiples beneficios de la programación orientada objetos.

En fin, todos estos conceptos son sumamente relevantes para quien desea introducirse a nivel profesional en el mundo tecnológico, especialmente en el desarrollo de software, ya que esta es la forma de programas que se utiliza más para cumplir con las necesidades de actualidad.

12

REFERENCIAS

admin (2021). Programación, un poco de historia y conceptos claves. Engineering SYLtec Recuperado el 5 de marzo de 2023 en: https://syltec.es/blog/2021/10/05/programacion-un-poco-de-historia-y-conceptos-clave/

Mestras, J. (2007). Objetos y Clases. Universidad Complutense de Madrid. Recuperado el 5 de marzo de 2023 en:

https://www fdi ucm es/profesor/jpavon/poo/1 1 objetos%20y%20clases pdf

Contribuidores de MDN (2023). constructor. mdn web docs. Recuperado el 5 de marzo de 2023 en: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Classes/constructor

Anónimo (2017) OCULTAMIENTO Interpolados Recuperado el 6 de marzo de 2023 en: https://interpolados.wordpress.com/tag/ocultamiento/

Pérez, J. (2021). QUÉ ES LA PROGRAMACIÓN ORIENTADA A OBJETOS. Intelequia. Recuperado el 7 de marzo de 2023 en:

https://intelequia com/blog/post/3072/qu%C3%A9-es-la-programaci%C3%B3n-orientadaa-objetos

Equipo Geek (2019). ¿Qué es la Herencia en la programación orientada a objetos?. if geek then. Recuperado el 7 de marzo de 2023 en:

https://ifgeekthen nttdata com/es/herencia-en-programacion-orientada-objetos

Álvarez, M. (2014). Herencia en Programación Orientada a Objetos. desarrolloweb.com. Recuperado el 7 de marzo de 2023 en:

https://desarrolloweb com/articulos/polimorfismo-programacion-orientada-objetosconcepto html

Álvarez, M. (2021). Polimorfismo en la Programación Orientada a Objetos. desarrolloweb.com.

Recuperado el 7 de marzo de 2023 en:

https://desarrolloweb com/articulos/herencia-en-programacion-orientada-objetos html

Wolves Mobile (2021). ¿Que es el encapsulamiento en POO(Programación Orientada a Objetos)?. medium. Recuperado el 7 de marzo de 2023 en:

https://wolvesmobile.medium.com/que-es-el-encapsulamiento-en-poo-programaci %C3%B3n-orientada-a-objetos-4d64c7623156

Esta revista tiene la finalidad de otorgar conocimientos al lector acerca de la Programación

Orientada a Objetos (POO), esto debido a que hoy en día es la forma de programar más utilizada por los beneficios que otorga.

Es sumamente importante que toda aquella persona que está buscando algún lugar en el mundo tecnológico como desarrollador, conozca y sepa escribir código con la estructura que corresponde a la orientada a objetos. Es decir, que esta revista está enfocada para todo aquel interesado en el área tecnológica, especialmente la que tiene que ver con la programación.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.
Programación Orientada a Objetos by Jorge Ramirez - Issuu