Beruflich Dokumente
Kultur Dokumente
El hecho de que el tema central sean los objetos, aunque intuitivamente, marca
una desviacin significativa de los anteriores paradigmas de la programacin.
Una ecuacin para reconocer una aproximacin a la Orientacin a Objetos es:
ORIENTACIN_OBJETOS = CLASES Y OBJETOS + HERENCIA + COMUNICACIN CON MENSAJES
Ejemplo 1
Consideremos cmo un programador podra designar una aplicacin de
procesamiento de una posicin en el espacio en forma orientada a objetos.
Clase
Posicin
Los objetos seran Punto A, Punto B donde tanto Punto A como Punto B tienen
las caractersticas de posicin.
Ejemplo 2:
Veamos ahora cmo sera la aplicacin con el sistema de los nmeros
complejos en forma orientada a objetos.
Clase
Complejos
Algunos objetos son p y q que por ser nmeros complejos son de la forma (real,
imaginaria).
Descripcin del trmino herencia
La herencia es un mecanismo para expresar similaridad entre clases,
simplificando definiciones de las clases similares previamente definidas. La
herencia permite crear nuevas clases llamadas subclases agregando solamente
las diferencias con la clase. En otras palabras la herencia es una particin en
subclases ms especializadas.
El principio en que se basa este concepto es de que las clases que se derivan
de otra clase, comparten las caractersticas comunes de la clase de la que
descienden.
Ejemplo 1:
Ejemplo 2:
Para este ejemplo usaremos la clase publicacin.
Antes de ver cada uno de estos conceptos es importante mencionar que los
ejemplos de los mismos se darn con seudo cdigo, por lo que daremos una
idea de este concepto.
El seudo cdigo se utiliza como una herramienta para estructurar el cdigo de
un programa sin comprometerse con ningn lenguaje, pero que es posible que
tenga alguna semejanza con el lenguaje a utilizar.
En el seudo cdigo se utilizan palabras en nuestro lenguaje que son similares a
las palabras utilizadas por los lenguajes de programacin. En realidad el seudo
cdigo es muy similar a un algoritmo pero ms estructurado, ya que se le deben
de dar sangras a la escritura de las instrucciones para hacerlo ms legible en
la lectura. Iniciamos:
Principio de abstraccin
Es el principio de ignorar los aspectos de un sujeto que no son relevantes en
un propsito de orden de concentracin ms exacto.
El proceso de representar entidades reales como elementos internos a un
programa recibe el nombre de abstraccin.
De esta forma, un tipo de dato abstracto se puede escribir concentrndose en
las operaciones que manipulan a los objetos de este tipo, sin caer en detalles
de representacin y manipulacin
de datos.
Datos. Es un atributo del objeto que representa cuantitativamente o
cualitativamente a ese objeto.
Procedimiento. Es una operacin que lleva a cabo un servicio a los
atributos del objeto.
Ejemplo 1:
En el ejemplo de la posicin en el espacio se quiere representar en objetos,
queremos abstraer esta parte del mundo real a un programa que pueda
representarlos. Una posicin en el plano la determinan las coordenadas (x, y),
que seran nuestros datos y los procedimientos que las manipulen pueden ser:
Iniciar posicin
Leer x
Leer y
Saluda
Ejemplo 2:
En el ejemplo de los nmeros complejos se tiene que stos son de la forma
(real, imaginaria), donde real e imaginaria son nmeros reales, de lo que
podemos intuir que los datos sean:
real e imaginaria
Los atributos que manipulan estos datos pueden ser todos los operadores
aritmticos (+, -, *, /) y los operadores de relacin ( =, < > ).
Encapsulamiento (ocultamiento de datos). Se refiere al hecho de que ningn
programador ni de ninguna otra parte de un programa se pueda tener acceso a
los datos de un objeto en forma directa, sino a travs de los procedimientos del
objeto.
Ejemplo 1:
En este ejemplo para leer cualquiera de las coordenadas no se puede
directamente slo leyendo por separado las coordenadas con los
procedimientos de lectura.
Ejemplo 2:
En el ejemplo de los nmeros complejos cada nmero complejo no se puede
modificar a menos que sea con los operadores.
Herencia. La herencia es un mecanismo que para expresar similaridad entre
clases, simplificando definiciones de clases similares previamente detenidas.
La herencia simple es cuando el lenguaje slo permite que una clase derive
de una clase.
La herencia mltiple es cuando una clase puede ser derivada de ms de una
clase.
Ejemplo 1. Herencia simple:
{
visible = 1;
};
void punto::ocultar()
{
visible = 0;
};
int punto::EsVisible()
{
return visible;
}
/* *************** clase circulo ********************** */
class circulo : public punto
{
int radio;
public:
void iniciar (int iniciarX, int iniciarY, int IniciaRadio)
{
punto::iniciar(iniciarX, iniciarY);
radio = IniciaRadio;
};
void expandir(int ExpandirPor);
void comprimir(int ComprimirPor);
virtual void saluda(){ cout << " Hola soy un circulo\n";};
};
void circulo::expandir(int ExpandirPor)
{
radio = radio + ExpandirPor;
};
void circulo::comprimir(int ComprimirPor)
{
radio = radio - ComprimirPor;
}
/* *************** fin clase circulo ********************** */
void main (void)
{
int Z;
circulo posicionA;
posicionA.iniciar(16,3,35);
posicionA.ocultar();
if (posicionA.EsVisible())
{
Z = posicionA.leerX();
cout << "\n valor visible de X " << Z;
posicionA.saluda();
}
else
cout << "\n valor X no visible " ;
}
Ejemplo 2:
Sistema de los nmeros complejos
#include <iostream.h>
class complex
{
private:
double r,i;
public:
void create (double, double); // crea un objeto tipo complejo
complex (double, double); // constructor crea un complejo
complex operator +( complex ); // sobrecarga de operadores
// polimorfismo
void suma(complex);
complex suma(complex, complex);
complex operator *(complex ); // sobrecarga de operadores
// polimorfismo
void producto(complex);
complex producto(complex,complex);
complex operator =(complex ); // sobrecarga de operadores
/* complex operator -(complex );
complex operator /(complex ); */
double real(void);
double imag(void);
void escritura(void);
}; // fin complex
void complex::create (double re= 0, double im= 0)
{
r= re;
i= im;
}
paradigmas tradicionales
En el paradigma de la orientacin a objetos los programas son conjuntos de
una nica entidad bsica, el objeto, el cual combina los datos con los
procedimientos que actan sobre ellos, adems los objetos reciben las
peticiones e interactan enviando mensajes a cada uno de los dems.