C + + y Paradigma de la Programacion Orientada a Objetos (PARTE I )

C MAS MAS:



La programacion orientada a objetos corresponde a un paradigma q se sustenta sobre Tres principos que lo estructura:

1/ PRINCIPIO DE ENCAPSULACION
2/ PRINCIPIO DE HERENCIA
3/ PRINCIPIO DE POLIMORFISMO

Principio de Encapsulacion: para desarrollar este principio es necesario contar con herramientas de tipo intelectual que nos permita obtener la semantica de una realidad.
Esta herramienta la llamamos abstraccion y permite obtener de la realidad las caracteristicas y funcionalidad de una cosa, objeto o idea.
Las caracteristicas tambien recive otros nombres como ser, propiedades, miembros, datos, cualidades, funcionalidades, metodos funcion, procedimientos y accion.
la abstraccion produce como resultado entidades , interrelaciones y procedimientos. Si lo miramos de este punto de vista (Del Lenguaje de Programacion) Obtenemos, CLASES, GERARQUIAS DE CLASES y COMPONENTES.

CLASE:
______
AA
______
Codigo : 0 //**Ambas
nombre: 0 //** Propiedades
_______
AA() //** Constructor
~AA() //** Destructor
CALCULAR() //** Metodos

\
P:AA

CLASE: La clase es una encapsulacion de propiedades y metodos. esta encapsulacion tiene un nombre para su identificacion y la estructura se aisla del exterior de manera que todo lo que este al interior de ella sea de uso solo de ella misma opera como si fuera un planeta solo es posible de acceder a traves de puertas logicas como si fueran chips virtuales las puertas se manejan a traves de instrucciones que permiten su acceso que puede ser privado, publico o protegido y las puertas logicas pueden ser variables o metodos.
Las clases se interrelacionan entre si mediante una estructura que se denomina gerarquia de clases donde el nivel mas alto corresponde a clases de tipo generico o de caracter general y las ultimas correspoden a clases especificas

Objeto: la clase la podemos ver como un molde , plantilla , matriz o incluso como una fabrica de productos siendo los objetos el producto de dicha fabrica la clase no es un objeto es la fabrica en si, para que la clase fabrique un objeto se le da una orden, esta orden resive el nombre de instancia en algunos lenguajes la instancia comple 2 propositos como instancia propiamente tal y como una orden a una funcion especial llamadas funciones constructoras por ejemplo en C++ la instancia corresponde a la asociacion de la clase con el objeto y la orden de ejecucion de la funcion constructora en VB la instancia esta asociada a la clase y el objeto a las funciones constructoras estan separadas.

EN C++ { AA P; }
EN VB {DIM P as AA
Set P = New P}

CONSTRUCTOR: Es un metodo especial cuya funcion es construir los objetos, no tiene tipo puede o no resivir argumentos y no devuelve nada, inicializa las variables (Propiedades) tiene el mismo nombre de la clase y existen 3 tipos llamados

CONSTRUCTOR POR OMISION o DEFECTO
CONSTRUCTOR GENERICO
CONSTRUCTOR DE COPIA

FUNCIONES DESTRUCTORAS: Es un metodo que permite destruir los objetos que no se utilizen de manera de devolver los recursos al sistema de esta manera se logra una regulacion y se estabiliza el sistema al no saturar la memoria. El destructor puede activarse de manera directa sinembargo existen procesos asociados al objeto donde pertenece el destructor para poder eliminarlos. existe solamente un destructor donde el lenguaje de P.O.O que se utilice, el nombre que toma en C++ es el mismo nombre de la clase.

METODO: Son procedimientos o funciones que permiten realizar un conjunto de operaciones. La estructura aisla todas las variables que esten en su interior respecto de las que esten fuera de la clase. Se distingue entre funcion yprocedimiento respecto de la devolucion de resultados

VB: Sub calcular()
end sub
C++: void calcular()
{ }
VB: Sub calcular (x as integer)
end sub
C++: void calcular (int x)
{ }
VB: Sub calcular (x as integer) as integer
calcular = z
end sub
C++: int calcular (int x)
{ return z; }

la diferencia entre funcion y procediemiento consiste en usar o no la estructura como una variable para sacar resultados hacia afuera. Cuando se llama a una funcion o un procedimiento se puede enviar informacion mediante un argumento.

algunos ejemplos:

/*** perdonen el sangrado pero esta mierda de blog me corre los sangrados.... ***/
/*** ejemplo 1

#include
#include

class SUMA
{
private:
int sumx;
int sumy;
int sumres;
public:
SUMA()
{
sumx = 0;
sumy = 0;
sumres = 0;
printf("Objeto Construido\n");
}
~SUMA()
{
printf("Objeto destruido\n");
}
void CALCULAR()
{
printf("Ingresa X = ");
scanf("%d",sumx);
printf("Ingresa Y = ");
scanf("%d",sumy);

sumres = sumx + sumy;
printf("Resultado = %d",sumres);
}

};


main(void)
{
SUMA p;
p.CALCULAR();
return 0;
}


//** ejemplo 2

#include
#include


class uno
{
private:
double unox,unoy,unores;
public:
uno()
{
cout<<"Objeto uno construido"<<"\n"; unox=unoy=unores=0; } ~uno() { cout<<"Objeto uno destruido"<<"\n"; } void calcular() { cout<<"Ingrese unox="; cin>>unox;
cout<<"Ingrese unoy="; cin>>unoy;

if((unox-pow(unoy,2))==0)
{
cout<<"ERROR, no se puede dividir por cero"<<"\n"; } else { unores=(pow(unox,2)-unoy)/(unox-pow(unoy,2)); if(unores==0) { cout<<"ERROR, raiz compleja"<<"\n"; } else { unores=pow(unores,1/3); cout<<"Resultado dosres="<<<"\n"; } } } }; class dos { private: double dosx,dosres; public: dos() { cout<<"Objeto dos construido"<<"\n"; dosx=dosres=0; } ~dos() { cout<<"Objeto dos destruido"<<"\n"; } void calcular() { cout<<"Ingrese dosx="; cin>>dosx;

if(dosx==0)
{
cout<<"ERROR, no se puede dividir por cero"<<"\n"; } else { dosres=pow(dosx,2)+(1)/(dosx)+5; cout<<"Resultado dosres="<<<"\n"; } } }; /* *********************************** pequeño programita de calculo ************************************** */ void main() { uno p; p.calcular(); dos q; q.calcular(); } /** este texto no pretende ser un manual de C++ solo es un ayudamemoria mio ** si te sirve pues bien si no pues no jodas aca. ;) **/
/**
en los dos casos include son
#include iostream.h, #include math.h pero nuevamente la excelente herramienta de blogger me a cagado y me edito los includes pensando que era codigo html...
**/

GRGRG fin

01000110 01110101
01100011 01101011
00100000 01101000
01110101 01101101
01100001 01101110
01110011
.
(Fuck the Humans
)






Comentarios

Entradas populares