Entendiendo la programación orientada a objetos basica


La programación orientada a objetos o POO es un paradigma de programación, que nos ayuda a resolver problemas de otra manera.

Voy a tratar de explicar este tema en varios artículos y tomando diferentes ejemplo y usos de la POO, también tratare de explicar a mi manera, es decir, sin ser muy técnico :o. Después hare artículos sobre poo en diferentes lenguajes de programación.

Vamos a hacer una pequeña comparativa entre la programación funcional y la programación orientada a objetos.

Programación funcional

La programación funcional la podemos encontrar en lenguajes como C y PHP principalmente, la mayoría de los lenguajes actuales son orientados a objetos.

Es necesario entender la programación funcional o tradicional para después ver como todo cambia en la POO.

En programación funcional todo se basa principalmente en variables con sus tipos, operadores y funciones.

En programación funcional tenemos por ejemplo una variable A entera con valor 10, y tenemos una funcion cuadrado(n) que recibe un numero y lo convierte al cuadrado es decir el valor de A= 10 seria 10*10=100.

A todo esto, la variable A y la funcion cuadrado(n) están aisladas.

Conforme escribimos código creamos mas y mas funciones, que pueden estar relacionadas o no, podemos pasar parámetros entre ellas, guardarlas en archivos concretos pero siguen teniendo ese concepto de aislamiento.

Vamos a ver como funciona la programación orientada a objetos y después haremos una comparación.

Programación orientada a objetos

Ahora podríamos decir que la en la POO todo es un objeto, y un objeto es básicamente una variable, pero esta variable tiene propiedades(variables) y métodos(funciones) pero estas propiedades y métodos no están aisladas, si no tienen un sentido de pertenencia a la instancia sobre la que estamos tratando. Veamos un ejemplo.

Los lenguajes e POO pueden ser Javascript, Python, Java, C#…

Tenemos la variable A es una cadena con valor “hola”, como un es objeto, desde el momento que lo creamos ya tiene con el un conjunto de propiedades y métodos. Un atributo podria ser length y se mostraría A.length, un método podria ser para hacer las letras mayúsculas. A.toUpperCase().

Ahora, con este tema cambiamos el tema del aislamiento, ya que cada variable tiene sus propios atributos y métodos que afectan al mismo objeto, es decir, si tenemos dos variables cadenas, cada objeto tendrá sus propios valores.

Estamos hablando de los atributos y métodos que ya vienen precargados en el lenguaje, pero nosotros podemos crear nuestros propios objetos y la forma de crearlos es usando clases. Las clases son definiciones de código donde vamos a implementar atributos y métodos. Un ejemplo de clase seria.

clase Persona {

public $nombre;

public $edad;

public function presentar(){ print “Hola soy “.$this->nombre; }

public function decir_edad(){ print “Tengo”.$this->edad.” anios”; }

}

Aquí tenemos una clase,Persona , tiene un atributo y un método y de esta forma creamos una plantilla, en base a esto podemos crear muchos objetos.

$p1 = new Persona();

$p1->nombre = “Kevin”;

$p1->edad = 5;

$p1->saludar();

$p1->decir_edad();

$p2 = new Persona();

$p2->nombre = “Agus”;

$p2->edad = 2;

$p2->saludar();

$p2->decir_edad();

Así tendríamos dos objetos, y cada objeto tiene sus propiedades y métodos.

Podemos tener mas atributos y mas métodos en una clase, todo dependiendo de nuestras necesidades.

Comparativa

Tomando en cuenta el ejemplo anterior podemos ver que tenemos dos objetos y a cada objeto le asignamos su atributo nombre y ejecutamos el método saludar() que devuelve un saludo con el nombre asignado.

Ahora, como haríamos algo similar en programación funcional? Seria algo asi.

function saludar($nombre){ print “Hola soy “.$nombre ;}

function decir_edad($edad){ print “Tengo “.$edad.” anios”; }

saludar(“Kevin”);

decir_edad(5);

saludar(“Agus”);

decir_edad(2);

Se podría observar que en la programación funcional es mas fácil, pero se esta olvidando el tema del aislamiento y pertenencia.

Pero en el ejemplo de POO hay un sentido de pertenencia por ejemplo $p1 tiene nombre y edad, los valores se asignan pero las variables nombre y edad no se crean otra vez, solo en la definición de la clase.

En el caso de la programación funcional no tenemos el sentido de pertenencia ya que los valores los ingresamos directos, otro caso seria crear variables por ejemplo $p1_nombre, $p1_edad, $p2_nombre,$p2_edad, pero segun el numero de personas incremente también necesitaríamos crear mas variables.

 


Leave a comment

2 thoughts on “Entendiendo la programación orientada a objetos basica

  • Raul

    pregunta yo apenas vi programacion funcional, de inicio me llamo la atencion, despues vi un poco y se me hizo muy flojo la pergunta es ¿tu recomendarias aprender esta programacion funcional? o mejor no pierdo mi tiempo

    • Agustin Ramos Post author

      Hola, si puedes aprender programación funcional como una base, pero también puedes aprender POO, puedes aprender un poco de las dos, también depende el tipo de programas o aplicaciones que desees desarrollar.