jueves, 28 de junio de 2012

POO Introducción(cont.)

POO Introducción(cont.) 


En el capitulo anterior aprendimos que podemos representar el mundo real con ayuda de las clases, al mismo tiempo, aprendimos que las clases tienen atributos y métodos; retomando el ejemplo anterior, la clase Vehículo, tiene algunas variantes como: carro, autobús, motocicleta, etc. Ahora aprenderemos como se relacionan estas variantes y nuestra clase principal.

Un carro es un vehículo por ello podemos decir, Carro hereda de Vehículo, al indicar la herencia que existe entre estas dos clases queremos decir que un Carro tiene:

  • Puertas
  • Llantas
  • Asientos
  • Tipo de Combustible

y puede realizar las funciones

  • Encender
  • Desplazar
  • Frenar
  • Apagar

Muy importante las clases que heredan de otra deben de poder realizar todas las funciones y contar con todos los atributos de su clase padre, de lo contrario no habremos modelado correctamente.

Ahora surge la pregunta, ¿Qué hace diferente a uno de otro?

Un vehículo es todo aquello que sirve para transportarnos y un carro es un tipo de vehículo. Para este ejemplo se considera vehículo como todo transporte motorizado que ayude a transportarnos.

… momento, ¿que pasa con lo que dicen las letras rojas?

Dicen que verifiquemos si todos los atributos y métodos de Vehículo, también se aplican en Carro, hagámoslo





PuertasLlantasAsientosTipo Comb.EncenderDesplazarFrenarApagar
Vehículoxxxxxxxx
Carroxxxxxxxx



Cumplimos con lo que se enuncia en letras rojas, Carro hereda todos los atributos y métodos de Vehículo.

… te creo, entonces dime ¿Cuál es la diferencia entre vehículo y carro?


Permite responder esto con otra pregunta, ¿Cuántas llantas tiene un vehículo?… mmm …

… depende de que vehículo sea


Exacto sabemos que un carro tiene 4 llantas; ¿todos los vehículos usan el mismo tipo de combustible? No, varia de acuerdo al tipo de vehículo. Con todo esto podemos decir


Carro es un Vehículo

Sus atributos son:
  • Llantas, que sabemos son 4
  • Puertas
  • Asientos
  • Tipo de combustible
y sus métodos:
  • Encender
  • Apagar
  • Desplazar
  • Frenar
… espera, espera, los carros también la mayoría funcionan con gasolina así que también sabemos que el tipo de combustible es gasolina

Es correcto podemos decir que cuando uno tiene en mente un carro se imagina: cuatro llantas, cuatro puertas, cinco asientos y funcionan con gasolina; modelando esta idea de carro nos queda:


Clase: Carro
Atributos:  llantas = 4, puertas = 4, asientos = 5, tipo de combustible = gasolina
Métodos: encender, apagar, desplazar, frenar


Lo que hemos hecho anteriormente fue modelar una clase hija a partir del concepto que nos fue dado de la clase base, este concepto en POO se conoce como herencia.

La herencia consta de tener un conjunto de series hijas a partir de una clase padre, para así poder reutilizar el código que se ha escrito anteriormente. De esta manera se ahorra tiempo en la escritura de código y además se tiene una estructura mas clara de que y que hace cada parte de un todo.



martes, 26 de junio de 2012

POO Introducción

Programación Orientada a Objetos(POO)

¿Que es?

Es quizá el paradigma de programación mas extendido, consiste en representar el mundo real mediante clases y relaciones.


... mmm chido, ¿como represento el entorno con esto?

Sencillo modelemos una parte de la ciudad con este paradigma, 

¿que es lo que principalmente hay en una ciudad?
  • Edificios
  • Carros
  • Casas
  • Gente
  • Escuelas
  • Autobuses
  • ...
Ok con esto basta por ahora, bien comencemos; podemos distinguir tres grupos entre estos  componentes de la ciudad:

Construcciones
  1. Edificios
  2. Casas
  3. Escuelas
Personas
  1. Hombres
  2. Mujeres
Vehículos
  1. Carros
  2. Autobuses
Como vemos las clasificaciones de lo que existe en la ciudad podemos ver que principalmente existen construcciones, personas y vehículos.




Una construcción tiene:

  • Estructura
  • Ventanas
  • Cimientos
  • Área
  • Puertas
 

Una persona tiene:

  • Nombre
  • Sexo
  • Edad
  • Estatura
  • Peso

Un vehículo tiene:
  • Tipo de combustible
  • Llantas
  • Asientos
  • Puertas

... y todo esto, ¿¿a mi que??


Con todo esto nosotros podemos representar a las entidades del mundo real y así poder resolver cualquier situación de una manera mas fácil y clara.

Tomemos el ejemplo anterior de vehículo, ¿como podemos representarlo usando el paradigma orientado a objetos?

Vehículo es algo del mundo real, en contexto de la poo esto seria la clase, puesto que existen gran variedad de vehículos.


... entonces, ¿las llantas y lo demás?

El tipo de combustible, llantas, asientos, puertas y todo lo que conviertan a un vehículo en vehículo se llaman atributos de la clase, no solo basta con tener los atributos de la clase es necesario modelar sus acciones, es decir, las funciones que puede realizar como encender, desplazarse, frenar, apagarse, etc; estas funciones son conocidas como métodos de la clase.


... ¿¿¿clases, atributos, métodos??? ¿como lo junto?


Ok, de lo anterior podemos llegar a una clase básica como la siguiente


Clase:            Vehículo
Atributos:       tipo de combustible, llantas, asientos, puertas, ...
Métodos:       encender, desplazarse, frenar, apagar, ...


esto solo es el comienzo, tenemos que aprender a representar como un vehículo cualquiera puede ser un carro, autobús, camioneta o demás. Para esto esperemos el siguiente capítulo del blog.




 
 




... to be continued

lunes, 25 de junio de 2012

Lenguajes de Programación

Lenguajes de Programación 

Podemos encontrar una infinidad de platillos en el buffet de los lenguajes de programación, donde cada comensal siempre tiene uno predilecto, de acuerdo a lo que exija su paladar; pero no siempre elegimos el mismo debido a que esto nos podria llevar a aborrecerlo. Pero, ¿como nos animamos a escoger un platillo de este buffet?; al igual que en cualquier otro siempre nos guiamos por la opinión de quien ya probó alguno y al final decidir si fue de nuestro agrado o no, si lo fue nos serviremos otra porción y lo recomendaremos a alguien mas.

En este buffet existen algunos platillos que son ampliamente destacados debido al gran numero de personas que les gusta su sabor, algunos son: .NET, Java, SAP; ¿te son familiares? estos platillos son imprescindibles en la mesa de buffet no solo por el número de comensales que les prefieren, sino también por quienes son y la razón por las que los comen. ¿Quienes son estos comensales?, el sector empresarial ese gran comensal que prefiere y gusta de estos lenguajes, cuando uno de ellos llega a la mesa de platillos los primeros en ser atacados son estos, pero aún queda el ¿por que? en el aire, analicemos estos platillos. 



Platillo: .NET 
Ingredientes: C#, Visual Basic, ASP, Visual C++, F# 
Chef: Microsoft Corp., Mono Project 

Este platillo es originario de la región Windows aquí podemos encontrar la receta original preparada por el chef Microsoft, esta receta incluye ingredientes que van muy bien con la región, por ello, si te encuentras o piensas vivir en Windows te recomendamos ampliamente pruebes este platillo.
Existe una variante conocida como Mono, surge para llevar al paladar de las personas que habitan en las regiones Unix el sabor original de .NET pero actualmente no ha conseguido este objetivo. Personalmente recomiendo probarlo ocasionalmente no como algo que deberías comer constantemente.


Platillo: Java 
Ingredientes: Java SE, Java EE, Java ME 
Chef: Oracle Corp.

No existe una región específica donde encontrarlo ya que se encuentra presente en todas las regiones, digamos que es algo así como la pizza de los lenguajes de programacion ya que se puede encontrar una franquicia en cada región. Los ingredientes que lo conforman son suficientes para complacer a los comensales que van desde comensales de escritorio, de pocos recursos y comensales robustos, es precisamente con estos últimos que se ha dado un auge del platillo, ya que, se opta por él principalmente debido a que este tipo de comensal tiene la mayor parte de sus recursos en regiones Unix.
El platillo es altamente recomendado sí lo que deseas es algo que puedas encontrar en cualquier parte.



Platillo: SAP
Ingredientes: SAP CRM,SAP ERP, SAP PLM, SAP SCM, SAP SRM
Chef: SAP AG

Uno de los platillos mas caros que podemos encontrar, personalmente no tengo experiencia con él, únicamente me he limitado a ver la carta. Cuenta con todo una plataforma compuesta desde un repositorio de BD, un lenguaje de consulta y programación(ABAP), servidor de aplicaciones y herramientas para el monitoreo y mantenimiento de sus aplicaciones.
No puedo dar una opinión personal, si alguien lo ha probado por favor comentenos.

Existen además de estos muchos mas platillos preferidos por otros paladares, de ellos hablaremos en otra ocasión. 

Bon appetit