domingo, septiembre 02, 2018

Programacion Orientada por Objetos

Programación Orientada por Objetos

Se conoce como programación orientada a objetos o POO, en ingles OOP (Object Oriented Programming) 

Este tipo de programación propone que todo lo veamos en funciona a objetos, como se hace en la vida diaria cotidiana de las personas. 

Una de las cosas que debemos entender es porque hemos llegado a este tipo de programación o desarrollos de software de esta manera.


Un poco de Historia de la programación

En el Inicio de los computadores, cuando los equipos utilizaban tubos al vacío de rayos catódicos, el consumo de energía era muy elevado, además de que había que utilizar sistemas de enfriamiento pues se generaba mucho calor.

En ese momento la programación que se podía realizar en las maquinas, era una programación por secuencia o secuencial de instrucciones, en la cual se ejecutaba instrucción por instrucción para arrojar al final un resultado.

El desarrollo del hardware siguió avanzando y aparecieron los transistores, esto trajo una enorme reducción del tamaño, del costo y del consumo de energía de los equipos, pero además una mayor velocidad, mejoramiento en el almacenamiento de información y en la memoria de los computadores, en este momento la programación avanzó, y se desarrollo lo que se conoce hoy día como programación procedimental, aqui se organizaron las ideas para realizar programas pequeños que realizaron una única tarea de la mejor manera.

A estos pequeños programas se les llamo Procedimientos, pero cuando devolvían un valor se les llamo Funciones.

El hardware siguió avanzando, y se lograron los chips, y la reducción de un mayor numero de transistores en un menor área lo que condujo a que se desarrollaran CPU o procesadores mucho mas rápidos y con mayor capacidad, asi como disco duros de mayor capacidad de almacenamiento a costos muy ínfimos.

En esta época apareció la programación orientada a objetos, pues ya el hardware es capaz de soportar un mayor numero de operaciones y una mayor capacidad de almacenamiento de datos.

Actualmente se esta hablando de computación cuántica, esto traerá tambien revolución y cambio en la programación de diferentes aplicaciones utilizando esta nueva metodología.



Clase

Una clase es el elemento mas importante en la POO, ya que una clase es la estructura, o el esqueleto de los objetos.

Si no tenemos una clase no puede haber un objeto.  Para que un objeto exista, debe instanciarse una clase, esto significa se debe crear una variable en memoria, del tipo de la clase que queremos convertir en un objeto.

Un ejemplo de esto, en el lenguaje C#, que es el lenguaje de programación sobre el cual vamos a realizar este curso, es el siguiente:

Persona cliente = new Persona();

En este ejemplo, tenemos una clase llamada Persona, creamos un objeto que llamamos cliente, y le asignamos un nuevo valor utilizando la instrucción new, y por ultimo le asignamos una instancia de la clase Persona, a esto se le llama instanciación o inicialización de un objeto.



Objeto

Es una variable del tipo de la clase especifica, este objeto es creado a través o con la ayuda del comando new, en el lenguaje de programación C#.



Estructura de una Clase

Una clase puede contener o estar compuesta por diferentes partes.

1. Propiedades
2. Eventos
3. Métodos

Propiedades: las propiedades o atributos de una clase, es donde se puede almacenar datos referentes a la clase, estas propiedades tiene asociado un tipo de datos, los tipos de datos pueden ser, enteros o int, texto o string, fecha o datetime, numérico con decimales o double, existen otro diferentes tipos d datos que tambien podemos utilizar y que utilizaremos de acuerdo a la estructura de nuestra clase.

Eventos: los eventos son la forma de comunicar que tiene la clase o el objeto (cuando se ha instanciado una clase), de comunicar al exterior el resultado de una operación. 

Métodos: los métodos son las acciones que realiza ese objeto con los datos, para dar un resultado.


Entendiendo que la clase es la estructura de un objeto, y que un objeto es cuando se define una variable del tipo de una clase ya creada.


Herencia

La herencia es uno de los conceptos mas importante de la POO, ya que permite reutilización de código, esto es, que escribimos una vez el código de una clase y por medio de la herencia podemos tener acceso a ese código, sean propiedades, sean eventos, o sean métodos, heredando de esa clase, sin tener que volver a escribir ese código nuevamente.

Hay dos tipos de herencia, herencia simple y herencia múltiple.

Herencia Múltiple: consiste en que una clase nueva puede heredar de varias clases, esto es posible en el lenguaje de programación Java. En el lenguaje C#, no es posible este tipo de herencia.

Herencia Simple: en este tipo de herencia, solo se puede heredar de una sola clase y única clase. Este tipo de herencia es la que utiliza C#, el lenguaje de programación que vamos a utilizar.