Вы находитесь на странице: 1из 24

UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN

EAP INGENIERIA INDUSTRIAL



ING. HUGO RODAS SERRANDO COMPUTACION I
UNIVERSIDAD NACIONALJOS FAUSTINO SNCHEZ CARRIN
FACULTAD INGENIERA

Programacin orientada
A objetos

ASIGNATURA : COMPUTACIN I

E.A.P : INGENIERA INDUSTRIAL


DOCENTE : ING. RODAS SERRANO

CICLO : II

INTEGRANTES : Samanamud Ramrez, Deisy
Meneses Inocente, Leanne


HUACHO




UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I














.



El presente trabajo est
dedicado a nuestros
padres y profesores
quienes da a da nos
inculcan el ser unas
mejores personas
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I






PRESENTACION

La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un
paradigma de programacin que usa objetos y sus interacciones, para disear aplicaciones
y programas informticos. Est basado en varias tcnicas, incluyendo herencia,
abstraccin, polimorfismo y encapsulamiento. Su uso se populariz a principios de la
dcada de los aos 1990. En la actualidad, existe variedad de lenguajes de programacin
que soportan la orientacin a objetos.






UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I

PROGRAMACIN ORIENTADA A OBJETOS
CONCEPTOS FUNDAMENTALES
La programacin orientada a objetos es una forma de programar que trata de encontrar
una solucin a estos problemas. Introduce nuevos conceptos, que superan y amplan
conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
a) CLASE: definiciones de las propiedades y comportamiento de un tipo de objeto
concreto. La instanciacin es la lectura de estas definiciones y la creacin de un
objeto a partir de ellas.


b) OBJETO: entidad provista de un conjunto de propiedades o atributos (datos) y de
comportamiento o funcionalidad (mtodos) los mismos que consecuentemente
reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos
rodea, o a objetos internos del sistema (del programa). Es una instancia a una
clase.

c) MTODO: Algoritmo asociado a un objeto (o a una clase de objetos), cuya
ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de
vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede
producir un cambio en las propiedades del objeto, o la generacin de un "evento"
con un nuevo mensaje para otro objeto del sistema.

d) EVENTO: Es un suceso en el sistema (tal como una interaccin del usuario con la
mquina, o un mensaje enviado por un objeto). El sistema maneja el evento
enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
como evento, a la reaccin que puede desencadenar un objeto, es decir la accin
que genera.

e) MENSAJE: una comunicacin dirigida a un objeto, que le ordena que ejecute uno
de sus mtodos con ciertos parmetros asociados al evento que lo gener.

f) PROPIEDAD O ATRIBUTO: contenedor de un tipo de datos asociados a un objeto (o
a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se
define como sus caractersticas predeterminadas, y cuyo valor puede ser alterado
por la ejecucin de algn mtodo.

g) ESTADO INTERNO: es una variable que se declara privada, que puede ser
nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para
indicar distintas situaciones posibles para el objeto (o clase de objetos). No es
visible al programador que maneja una instancia de la clase.

Componentes de un objeto: atributos, identidad, relaciones y mtodos.

Identificacin de un objeto: un objeto se representa por medio de una tabla o
entidad que est compuesta por sus atributos y funciones correspondientes.
En comparacin con un lenguaje imperativo, una "variable", no es ms que un
contenedor interno del atributo del objeto o de un estado interno, as como la "funcin"
es un procedimiento interno del mtodo del objeto.




UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
CARACTERSTICAS DE LA POO
Existe un acuerdo acerca de qu caractersticas contempla la "orientacin a objetos", las
caractersticas siguientes son las ms importantes:
ABSTRACCIN
Denota las caractersticas esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto
que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros
objetos en el sistema sin revelar cmo se implementan estas caractersticas. Los procesos,
las funciones o los mtodos pueden tambin ser abstrados y cuando lo estn, una
variedad de tcnicas son requeridas para ampliar una abstraccin. El proceso de
abstraccin permite seleccionar las caractersticas relevantes dentro de un conjunto e
identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo
real. La abstraccin es clave en el proceso de anlisis y diseo orientado a objetos, ya que
mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la
realidad o el problema que se quiere atacar.
ENCAPSULAMIENTO
Significa reunir a todos los elementos que pueden considerarse pertenecientes a una
misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los
componentes del sistema. Algunos autores confunden este concepto con el principio de
ocultacin, principalmente porque se suelen emplear conjuntamente.
MODULARIDAD
Se denomina Modularidad a la propiedad que permite subdividir una aplicacin en partes
ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente
como sea posible de la aplicacin en s y de las restantes partes. Estos mdulos que se
puedan compilar por separado, pero que tienen conexiones con otros mdulos. Al igual
que la encapsulacin, los lenguajes soportan la Modularidad de diversas formas.
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
PRINCIPIO DE OCULTACIN
Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone
una interfaz a otros objetos que especfica cmo pueden interactuar con los objetos de la
clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por
quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del
objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el
estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e
interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo
a los datos internos del objeto de una manera controlada y limitando el grado de
abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos.
RECOLECCIN DE BASURA
La recoleccin de basura o garbage collector es la tcnica por la cual el entorno de objetos
se encarga de destruir automticamente, y por tanto desvincular la memoria asociada, los
objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el
programador no debe preocuparse por la asignacin o liberacin de memoria, ya que el
entorno la asignar al crear un nuevo objeto y la liberar cuando nadie lo est usando. En
la mayora de los lenguajes hbridos que se extendieron para soportar el Paradigma de
Programacin Orientada a Objetos como C++ u Object Pascal, esta caracterstica no existe
y la memoria debe desasignarse manualmente.






UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
LENGUAJES ORIENTADOS A OBJETOS
Simula (1967) es aceptado como el primer lenguaje que posee las caractersticas
principales de un lenguaje orientado a objetos. Fue creado para hacer programas de
simulacin, en donde los "objetos" son la representacin de la informacin ms
importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo cannico, y con el que
gran parte de la teora de la programacin orientada a objetos se ha desarrollado.
Entre los lenguajes orientados a objetos se destacan los siguientes:
ABAP
ABL Lenguaje de programacin de OpenEdge de Progress Software
ActionScript
ActionScript 3
Ada
C++
C#
Clarion
Clipper (lenguaje de programacin) (Versin 5.x con librera de objetos Class(y))
Harbour
Eiffel
Java
JavaScript (la herencia se realiza por medio de la programacin basada en
prototipos)
Oz
R
Perl (soporta herencia mltiple. La resolucin se realiza en preorden, pero puede
modificarse al algoritmo linearization C3 por medio del mdulo Class::C3 en CPAN)
PHP (a partir de su versin 5)
PowerBuilder
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
Smalltalk (Proyecto investigativo. Influenci a Java.)
Magik (SmallWorld)
VB.NET
Visual FoxPro (en su versin 6)
Visual Basic 6.0
Visual Objects
XBase++
Lenguaje DRP
Muchos de estos lenguajes de programacin no son puramente orientados a objetos, sino
que son hbridos que combinan la POO con otros paradigmas.
Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX,
han sido creados aadiendo extensiones orientadas a objetos a un lenguaje de
programacin clsico.
Un nuevo paso en la abstraccin de paradigmas de programacin es la Programacin
Orientada a Aspectos (POA). Aunque es todava una metodologa en estado de
maduracin, cada vez atrae a ms investigadores e incluso proyectos comerciales en todo
el mundo.







UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
HERENCIA
Como ya hemos visto en las definiciones anteriores conceptos relacionados a lo que
respecta a herencia ahora afianzaremos estos conocimientos con los siguientes datos
adquiridos:
La herencia permite crear clases a partir de otras ya existentes. La herencia se implementa
utilizando el concepto de clases derivadas.
Una clase que hereda a otra (clase derivada) puede acceder a sus miembros redefinirlos o
aadir nuevos miembros que necesite.
Las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de
clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases
a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento
permitiendo a los objetos ser definidos y creados como tipos especializados de objetos
preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que
volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases
y estas en rboles o enrejados que reflejan un comportamiento comn. Cuando un objeto
hereda de ms de una clase se dice que hay herencia mltiple.







CLASE BASE
DATOS
FUNCIONES
CLASE DERIVADA1
DATOS
FUNCIONES

CLASE DERIVADA2
DATOS
FUNCIONES
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
CARACTERSTICAS
Una clase derivada puede, a su vez puede ser una clase base, dando jerarqua de clase.
Una clase derivada puede acceder a los miembros public y protected de la clase base
como si fueran miembros de ella. No puede tener acceso a los miembros prvate.
SINTAXIS
Clase derivada:[Acceso]ClaseDerivada1, Acceso ClaseDerivada2,
{
//Cuerpo de la clase derivada
}
INTERPRETACIN DE ACCESO

PRVATE
Los miembros public y protected de la clase base son privados en la clase derivada.Los
miembros prvate de la clase base son inaccesibles desde la clase derivada.
PROTECTED
Los miembros public y protected de la clase base son protected en la clase derivada. Los
miembros prvate de la clase base son inaccesibles desde la clase derivada.
PUBLIC:
Los miembros public de la clase base son public en la clase derivada. Los miembros
protected de la clase base son protectd en la clase derivada. Los miembros prvate de la
clase base son inaccesibles desde la clase derivada.

UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
#include<iostream.h>
#include<conio.h>
class ClaseCirculo
{
public:
float Radio;
float Area;
void LeerRadio();
void CalcularArea();
void ImprimirArea();
};

/*
IMPLEMENTACION DE LAS FUNCIONES MIEMBRO DE CLASECIRCULO
*/

void ClaseCirculo::LeerRadio()
{
clrscr();
cout<<"Radio";
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
cin>>Radio;
}
void ClaseCirculo::CalcularArea()
{
Area=3.1415*Radio*Radio;
}
void ClaseCirculo::ImprimirArea()
{
cout<<"Area:"<<Area<<endl;
}
/*
Clase derivada. ClaseCilindro es derivada de ClaseCirculo
*/
class ClaseCilindro:public ClaseCirculo
{
public:
float Altura,Volumen;
void CalcularVolumen();
void LeerAltura();
void ImprimirVolumen();
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
};
/*implementacion de las funciones miembro de ClaseCilindro
*/

void ClaseCilindro::LeerAltura()
{
cout<<"Altura:";
cin>>Altura;
}
void ClaseCilindro::CalcularVolumen()
{
Volumen=Area*Altura;
}
void ClaseCilindro::ImprimirVolumen()
{
cout<<"Volumen:"<<Volumen<<endl;
}

void main()
{
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
/*
declaracion del ObjetoCilindro de tipo ClaseCilindro
*/
ClaseCilindro ObjetoCilindro;

/*
ejecucion de las funciones miembro
*/
ObjetoCilindro.LeerRadio();
ObjetoCilindro.CalcularArea();
ObjetoCilindro.LeerAltura();
ObjetoCilindro.ImprimirArea();
ObjetoCilindro.CalcularVolumen();
ObjetoCilindro.ImprimirVolumen();
getche();
}




UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
La herencia permite la programacin utilizando archivos de librera, es decir las clases
bases se pueden localizar en archivos externos los cuales se pueden incluir al programa
principal utilizando #include NOMBREDELALIBRERIA, adems de indicar la ruta de
acceso al archivo externo.
EJEMPLO:
#include <iostream.h>
#include<conio.h>
#include<c:ClaseCir.cpp>
Class ClaseCilindro:public ClaseCirculo
{
Prvate:
float Altura;
float Volumen;
public:
void LeerAltura();
void CalcularVolumen();
void ImprimirVolumen();
};
Void ClaseCilindro:: LeerAltura ()
{ cout<<Altura:;cin>>Altura;
}
Void ClaseCilindro:: CalcularVolumen ()
{ Volumen=AreaCirculo*Altura;
}
Void ClaseCilindro:: ImprimirVolumen ()
{ cout<<Volumen:<< Volumen;
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
}
Void main()
{
ClaseCilindro ObejtoCilindro;
Clrscr();
ObjetoCilindro.LeerRadio ();
ObjetoCilindro.LeerAltura ();
ObjetoCilindro.CalcularAreaCirculo ();
ObjetoCilindro.ImprimirArea ();
ObjetoCilindro.CalcularVolumen ();
ObjetoCilindro.ImprimirVolumen ();
}

HERENCIA MLTIPLE
La herencia mltiple es el mecanismo que permite al programador hacer clases derivadas
a partir, no de una sola clase base, sino de varias. Para entender esto mejor, pongamos un
ejemplo: Cuando ves a quien te atiende en una tienda, como persona que es, podrs
suponer que puede hablar, comer, andar, pero, por otro lado, como empleado que es,
tambin podrs suponer que tiene un jefe, que puede cobrarte dinero por la compra, que
puede devolverte el cambio, etc. Si esto lo trasladamos a la programacin sera herencia
mltiple (clase empleado tienda):





UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
class Persona {
...
Hablar();
Caminar();
...
};

class Empleado {
Persona jefe;
int sueldo;
Cobrar();
...
};

class empleado_tienda: public Persona, Empleado {
...
AlmacenarStock();
ComprobarExistencias();
...
};
Por tanto, es posible utilizar ms de una clase para que otra herede sus caractersticas.





UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
POLIMORFISMO
Es la caracterstica ms importante de la OOP que consiste fundamentalmente en la
capacidad de realizar la misma tarea pero de muchas formas distintas. El misterio de esta
caracterstica radica que en el momento de la compilacin NO SE CONOCE la tarea que se
realizara; recin se conoce en el momento de la ejecucin. A estas tareas misteriosas se
les conoce con el nombre de VIRTUALES ya que aparentemente existen, pero realmente
no hacen nada.
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo
nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al
objeto que se est usando. O dicho de otro modo, las referencias y las colecciones de
objetos pueden contener objetos de diferentes tipos, y la invocacin de un
comportamiento en una referencia producir el comportamiento correcto para el tipo real
del objeto referenciado. Cuando esto ocurre en "tiempo de ejecucin", esta ltima
caracterstica se llama asignacin tarda o asignacin dinmica. Algunos lenguajes
proporcionan medios ms estticos (en "tiempo de compilacin") de polimorfismo, tales
como las plantillas y la sobrecarga de operadores de C++.
CARACTERSTICAS

Tiende a la generacin de clases genricas
Aplica obligatoriamente la caracterstica de herencia para la redefinicin de clases
virtuales.
Si una clase derivada no redefine una funcin virtual, se ejecutar la funcin de la
clase base.
Una funcin virtual en una clase base, continua siendo virtual cuando es heredada
y su redefinicin debe de tener el mismo nombre , nmero y tipo de parmetros y
tipo de valor retornado en la clase base.
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
En la clase debe haber por lo menos una funcin que establezca la secuencia lgica
de ejecucin de la clase. Las funciones que en la clase base aun no se pueden
desarrollar se denominan virtuales y sern desarrolladas en las clases derivadas
correspondientes.
No se permiten constructores virtuales.
Ejemplo:
#include<iostream.h>
#include<conio.h>
class cEntero
{ private:
int Entero;
public:
virtual void Ingresa(void);
virtual void Muestra(void);
void ejecuta(void);
{
Ingresa();
Muestra();
}
};
class cReal: public cEntero
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
{
private:
float Real;
public:
virtual void Ingresa(void);
virtual void Muestra(void);
};
void main()
{
cEntero ObjEntero;
cReal ObjReal;
clrscr();
ObjEntero. Ejecuta();
ObjReal. Ejecuta();
}
void cEntero::Ingresa(void)
{
cout<<"Ingrese un dato entero:";
cin>>Entero;
}
UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I
void cEntero::Muestra(void)
{
cout<<"Dato entero:"<<Entero;
cout<<endl;
}
void cReal::Ingresa(void)
{
cout<<"Ingrese un dato real:";
cin>>Real;
}
void cReal::Muestra(void)
{
cout<<"Dato real:"<<Real;cout<<endl;
}






UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I






CONCLUSIONES
La programacin orientada a objetos es un paradigma que utiliza objetos como elementos
fundamentales en la construccin de la solucin. Surge en los aos 70. Un objeto es una
abstraccin de algn hecho o ente del mundo real que tiene atributos que representan
sus caractersticas o propiedades y mtodos que representan su comportamiento o
acciones que realizan. Todas las propiedades y mtodos comunes a los objetos se
encapsulan o se agrupan en clases. Una clase es una plantilla o un prototipo para crear
objetos, por eso se dice que los objetos son instancias de clases.








UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRIN
EAP INGENIERIA INDUSTRIAL

ING. HUGO RODAS SERRANDO COMPUTACION I






BIBLIOGRAFA

VisualBasic.Net 2005 Express \ JUAN JOSE CASTAEDA LEN
WWW.monografias.com

Вам также может понравиться