poo for dummies.pdf

5
POO for Dummies(Introduction) En el Siguiente articulo me introduciré en unas de las tareas mas tediosas del mundo , sin ser programador, tratar de enseñar algo de POO hay varios libro por ahí, yo recomiendo a alguien leer el siguiente articulo, si y solo si, tiene conocimientos básicos/medios de programación, ya que voy a obviar ciertas aclaraciones, sobre clases y objetos. Pensemos en objetos como algo “físico” , tenemos por ejemplo el trillado ejemplo del auto, el auto esta compuesto por varios objetos, rueda, motor, chasis etc. Bueno en programación un objeto vendría a ser una variable grande, digamos como por ejemplo, un auto (“=P”) que esta construido a su vez por objetos(variables) más pequeños ejemplo ruedas, ahora yo puedo comprar un auto o una rueda. Entonces yo en programación puedo comprar un objeto grande, como uno pequeño, depende lo que necesite en el programa, esto es mas o menos orientativo. ¿Que son los métodos/funciones? Digamos que para mover un auto necesitamos acelerar, (se debe encender el motor pero esto es un ejemplo =S .).Entonces apretamos el acelerador y el auto sale andando, en programación, apretar el acelerador seria llamar a la función Acelerar().Ahora acelerar va a modificar el atributo Velocidad del auto y también a modificar atributos de otros objetos, por ejemplo va a desgastar las ruedas. ¿Que es un atributo ? Un atributo es la parte mas pequeña que puede constituir un objeto, también son ciertas características, especiales de cada objeto. ¿Clases? Si pensamos todo en extremo físico, una clase vendría a ser como la fabrica del objeto mas pequeño que tengamos en nuestro programa, la clase es la que conoce los atributos, como modificarlos, y como enviarte el objeto a tu casa. Una clase puede pedir a otra clase ciertos objetos, estos objetos van a tener ciertos atributos heredados,”Si me envían tela roja para hacer un vestido, el vestido va a ser rojo”, una fabrica(Clase) puede mandarnos objetos con atributos predeterminados y/o pedirnos que le digamos que atributos queremos, esto se hace mediante algún método, por lo general llamado setNombre_Atributo(). En caso de que no le aclaremos la fabrica tiene un método llamado constructor, para predeterminar los atributos, lleva el mismo nombre que la clase. ¿WTF !! Herencia? Si como cuando uno es bebe y dicen tiene los ojitos de la mama, la boca del papa y el pitulin de la abuela. Un objeto va heredar de la clases padres ciertos atributos, a pesar de llamarse clases padres puede haber mas de dos (se ve que los creadores de lenguajes de programación, le gustaban las orgías romanas). Bueno si no entendiste esto, vallamos al código quizás lo entiendas

Upload: fabio-morales

Post on 28-Dec-2015

52 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: POO for Dummies.pdf

POO for Dummies(Introduction)

En el Siguiente articulo me introduciré en unas de las tareas mas tediosas del mundo , sin ser programador, tratar de enseñar algo de POO

hay varios libro por ahí, yo recomiendo a alguien leer el siguiente articulo, si y solo si, tiene conocimientos básicos/medios de programación, ya que voy a obviar ciertas aclaraciones, sobre clases y objetos.Pensemos en objetos como algo “físico” , tenemos por ejemplo el trillado ejemplo del auto, el auto esta compuesto por varios objetos, rueda, motor, chasis etc. Bueno en programación un objeto vendría a ser una variable grande, digamos como por ejemplo, un auto (“=P”) que esta construido a su vez por objetos(variables) más pequeños ejemplo ruedas, ahora yo puedo comprar un auto o una rueda. Entonces yo en programación puedo comprar un objeto grande, como uno pequeño, depende lo que necesite en el programa, esto es mas o menos orientativo.

¿Que son los métodos/funciones?

Digamos que para mover un auto necesitamos acelerar, (se debe encender el motor pero esto es un ejemplo =S .).Entonces apretamos el acelerador y el auto sale andando, en programación, apretar el acelerador seria llamar a la función Acelerar().Ahora acelerar va a modificar el atributo Velocidad del auto y también a modificar atributos de otros objetos, por ejemplo va a desgastar las ruedas.

¿Que es un atributo ?

Un atributo es la parte mas pequeña que puede constituir un objeto, también son ciertas características, especiales de cada objeto.

¿Clases?

Si pensamos todo en extremo físico, una clase vendría a ser como la fabrica del objeto mas pequeño que tengamos en nuestro programa, la clase es la que conoce los atributos, como modificarlos, y como enviarte el objeto a tu casa.Una clase puede pedir a otra clase ciertos objetos, estos objetos van a tener ciertos atributos heredados,”Si me envían tela roja para hacer un vestido, el vestido va a ser rojo”, una fabrica(Clase) puede mandarnos objetos con atributos predeterminados y/o pedirnos que le digamos que atributos queremos, esto se hace mediante algún método, por lo general llamado setNombre_Atributo().En caso de que no le aclaremos la fabrica tiene un método llamado constructor, para predeterminar los atributos, lleva el mismo nombre que la clase.

¿WTF !! Herencia?

Si como cuando uno es bebe y dicen tiene los ojitos de la mama, la boca del papa y el pitulin de la abuela. Un objeto va heredar de la clases padres ciertos atributos, a pesar de llamarse clases padres puede haber mas de dos (se ve que los creadores de lenguajes de programación, le gustaban las orgías romanas).

Bueno si no entendiste esto, vallamos al código quizás lo entiendas

Page 2: POO for Dummies.pdf

#include <iostream>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

//Este Source Code se entrega con una licencia CC-BY-NC-SA

//by Yashirasu <www.facebook.com/andi.karma.7>

//ejemplo de POO for Dummies

using namespace std;

//pensemos a la clases Tela/Boton/Pant como una fabrica

class Tela{

//Los Atributos van en un sector privado, para "fabricar"

//el pantalon no necesitamos saber como se "fabrica" la tela

private:

char color[20];

char textura[20];

public:

//La siguiente funcion se llama "Constructor" en caso de

//no aclarle al fabricante como queremos la tela

//nos enviara esta como predeterminada

Tela()

{

strcpy (color,"azul");

strcpy(textura,"gruesa");

};

//La siguiente funcion/metodo es para decirle al "fabricante"

//como queremos la tela, en caso de no querer la predeterminada

void setTela(char *col, char *text){

strcpy(color,col);

strcpy(textura,text);

}

//Con la siguiente funcion el fabricante nos "muestra"/"envia" el producto que pedimos

void mostAtt()

Page 3: POO for Dummies.pdf

{

cout<<"la tela es de color "<<color<<" y su textura es "<<textura<<endl;

}

};

class Boton{

private:

//Los Atributos van en un sector privado, para "fabricar"

//el pantalon no necesitamos saber como se "fabrica" el boton

char color[20];

char tipo[20];

public:

//La siguiente funcion/metodo es para decirle al "fabricante"

//como queremos el boton

void setAtt(char *col, int j)

{

strcpy(color, col);

if (j==1)

{strcpy(tipo,"plastico");

}

else{

strcpy(tipo,"metal");

}

}

//Con la siguiente funcion el fabricante nos "muestra" el producto que pedimos

void mostAt(){

cout<<"El color del boton es: "<<color<<"Y su tipo es "<<tipo<<endl;

}

};

//en la clase Pant no fabricamos la tela ni el boton, si no que la/lo "compramos a Tela/Boton

//en la Clase Pant "fabricamos" el pantalon con las cosas

//compradas en la "fabricas" de Tela/Boton

//Si la tela es "Roja" el pantalon es "Rojo"(herencia)

class Pant:public Tela,public Boton{

};

Page 4: POO for Dummies.pdf

int main()

{char res[2],col[20],text[20];

int j;

do{

cout<<"Bienvenido al programa para crear tu propio pantalon\nEscriba el Color:\t"<<endl;

cin>>col;

cout<<"Escriba la Textura\t"<<endl;

cin>>text;

Pant pantalon;//Aca pedimos al objeto "Pantalon"

pantalon.setTela(col,text);//aca aclaramos que "Cualidades" queremos que tenga la tela

cout<<"Escriba el color del boton"<<endl;

cin>>col;

do{cout<<"De que tipo quiere el boton\n1-Plastico\n2-Metalico"<<endl;

cin>>j;

if(j<1 || j>2)

{

cout<<"Error\n\a"<<endl;

}

}while(j<1 || j>2);

pantalon.setAtt(col,j);//aca pedimos que el boton cumpla ciertas caracteristicas

cout<<"-------------Asi quedo su pantalon-----------"<<endl;

pantalon.mostAtt();

pantalon.mostAt();

do{

cout<<"Desea crear otro pantalon"<<endl;

cin>>res;

res[0]=toupper(res[0]);

}while ((strcmp("N",res)!=0)&&((strcmp("Y",res))!=0));

}while ((strcmp("Y",res))==0);

Page 5: POO for Dummies.pdf

return 0;

}

Todo este articulo como el codigo fuente contenido en el esta con una Licencia Creative Commons 3.0 BY-NC-SA

el autor de este articulo es Yashirasu Sensei

Consultas:[email protected] y [email protected]