Posts Tagged ‘poo’

Programación orientada a objetos - clase I

¿Que es una clase?. Una clase es una construcción usada como plano o patrón para crear los objetos de esa clase. Este plano describe el estado y comportamiento que comparten los objetos de esa clase. Un objeto es contenedor con el que podremos utilizar las propiedades y los métodos públicos de una clase y se pueden crear(instanciar) tantos objetos como necesitemos y todos tendrán los mismos métodos y propiedades.

Una clase puede tener propiedades (atributos) y métodos(funciones) que hacen interactuar a la clase consigo misma o con el mundo exterior

La clase es la base de la Programación Orientada a Objetos, por loque conviene entenderlo bien. Vamos a ver un ejemplo:

Tenemos una clase llamada Coche que representa coches en nuestro programa y tiene, por ejemplo, los atributos color y posición, y un método mover() que haría que que el coche se moviera, (por ejemplo si nuestro programa fuera un videojuego).
La sintaxis de la definición de clases es bastante parecida en todos los lenguajes, así que vamos a ver como se hace en C#.

[private/protected/public/internal] class NameOfClass [: BaseClass] [, Interface1, Interface2…]
{
  // Attributes, Properties, Methods,…
}

Las clases en C# pueden tener una única clase base, pero pueden implementar tantos interfaces como quieran esto es Herencia que es una característica de la POO que veremos más tarde.

Microsoft recomienta que los nombres de las clases empiecen con mayúscula, pero esto es opcional, aunque mucha gente lo usa así en el mundo laboral.

Poo introduccion a la programacion orientada a objetos
En la programación funcional la compartición de datos se implementa normalmente usando funciones y estructuras de datos globales. Esto significa que cualquiera puede acceder a esos datos, independientemente de si debería poder o no. Quizás en la programación unipersonal, esto no sea ningún problema pero cuando se programa en grupo puede suponer grandes quebraderos de cabeza.
Por ejemplo, si estamos haciendo un programa sobre una moto y se exponen los datos de la moto, las funciones que manejan las luces tendrían  acceso a las ruedas (que puede ser razonable), pero las ruedas también tendrán acceso (y podrán modificar) a los datos de las luces (que ya no tiene tanto sentido)
Esto acarrea un incremento en la complejidad del manejo y actualización del programa conforme va creciendo. La complejidad en programación conlleva más errores (bugs) y más difíciles de encontrar. Así aumenta el coste y el mantenimiento. Tampoco es sencillo reutilizar código y esto es algo fundamental en la programación.

El paradigma de Programación Orientada a Objetos (POO) intenta solucionar estos problemas usando un punto de vista que es bastante ‘natural’ algo similar a como normalmente pensamos de las cosas como vemos en el siguiente capítulo.