domingo, 2 de febrero de 2014

CLASES Parte 2: PRIVATE

Que tal programadores, espero que estén listos para esta segunda parte de clases en donde utilizaremos el encapsulamiento PRIVATE , les recomiendo que antes de continuar visiten la primera parte en donde utilizamos el tipo de encapsulamiento PUBLIC para esto da click en el siguiente link



Para comenzar vamos a plantearnos un problema con el diagrama UML y nuestro problema será el siguiente: 



Este problema nos indica lo siguiente:
  • ·         NOMBRE DE LA CLASE : Tenis
  • ·         DATOS PRIVADOS: Color, Marca
  • ·         FUNCIONES PUBLICAS: ImprimirDatos


Cuando se colocan los datos privados quiere decir que únicamente la clase puede tener acceso a esos datos, ni el mismo main puede acceder asi que para poder utilizar esos datos vamos a necesitar la ayuda de los punteros a los que le llamaremos SET Y GET :
  • ·         SET: Es una FUNCION que nos va a permitir manipularla desde el main, y estamos apuntando hacia la variable que esta en modo privado para que pueda ser accesada.
  • ·         GET: Es una FUNCION que nos va a permitir visualizar la variable si la invocamos desde el main


REGRESANDO AL PROBLEMA:

El primer dato privado es COLOR de tipo string. La función de SET y GET quedaría asi:

        void setColor (string color)
        { this->color=color; }
        string getColor()
        { return color; }

El segundo dato privado es MARCA de tipo string. Las funciones de SET Y GET serían:

                void setMarca (string marca)
        { this->marca=marca; }
        string getMarca()
        { return marca; }

El tercer dato privado es TALLA de tipo int. Las funciones de SET Y GET serian de la siguiente manera:

                void setTalla(int talla)
        { this->talla=talla; }
        int getTalla()
        { return talla; }


NOTAS IMPORTANTES:

·         SETTERS: esta función siempre debe aceptar una variable, esta variable puede ser con el mismo nombre o diferente, se recomienda con el mismo nombre. Dentro de esta función colocamos un “this” quiere decir que apuntaremos “->” a la variable que acaba de recibir y daremos el mismo valor a la variable que se encuentra en modo privado.
·         GETTERS: Esta función es importante si se desea utilizar en el main, por lo que siempre va a retornar el mismo tipo de dato del que recibió en el SET, y retornara la variable privada para ser mostrada dentro del main.

Debemos tomar en cuenta que dentro del main tenemos que mandar a llamar a las clases . Si tienen alguna duda sobre eso vayan al siguiente link CLASES parte 1

Ahora mostrare el código para mejor entendimiento:
#include <iostream>
using namespace std;
class Tenis {
   private:
        string color;
        string marca;
        int talla;
    public:
        void setColor (string color)
        { this->color=color; }
        string getColor()
        { return color; }

        void setMarca (string marca)
        { this->marca=marca; }
        string getMarca()
        { return marca; }

        void setTalla(int talla)
        { this->talla=talla; }
        int getTalla()
        { return talla; }

        void imprimirDatos ()
        {
            cout<<"LOS DATOS INGRESADOS FUERON:"<<endl;
            cout<<"Marca: "<<marca<<endl;
            cout<<"Color: "<<color<<endl;
            cout<<"Talla: "<<talla<<endl;
        }

};
int main()
{
    Tenis claseTenis;
    string marcaIngresada;
    string colorIngresado;
    int tallaIngresada;
    cout<<"::::::::::::VENTA DE TENIS::::::::::::::"<<endl;
    cout<<"COLOR: ";
    cin>>colorIngresado;
    cout<<"MARCA: ";
    cin>>marcaIngresada;
    cout<<"TALLA: ";
    cin>>tallaIngresada;

    claseTenis.setColor(colorIngresado);
    claseTenis.setMarca(marcaIngresada);
    claseTenis.setTalla(tallaIngresada);

    claseTenis.imprimirDatos();

}

Y EL RESULTADO EN CONSOLA SERIA :




SI TIENEN ALGUNA DUDA PUEDEN COMENTARNOS EN LA PARTE DE ABAJO

NO OLVIDEN SEGUIRNOS EN FACEBOOKY TWITTER

NOS VEMOS A LA PROXIMA XD 

No hay comentarios.:

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *