Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Unidad II Introduccion A La POO

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 64

UNIDAD III

Programacin Orientada a Objetos

INDICE
Objetivo general. Objetivos especficos. Bibliografa recomendada. Introduccin. Clases. Declaracin de una clase. Objetos de clases.

INDICE
Atributos. Definicin de una funcin miembro. Tipos de funciones miembros. Constructor. Tipos de constructores. Constructor por defecto.

Constructor alternativo.

INDICE
Constructor sobrecargado. Constructor de copia. Destructor. Selectores. Modificadores o mutadores. Iteradores. Principios de la POO.

INDICE
Encapsulamiento. Visibilidad. Polimorfismo. Herencia. Herencia simple. Herencia mltiple. Funciones virtuales.

INDICE
Ejercicios propuestos. Recomendaciones. Errores frecuentes de programacin. Interrogantes.

OBJETIVO GENERAL
Al finalizar esta unidad los alumnos estarn en

la capacidad de manejar e implementar conceptos bsicos relacionados con la programacin orientada a objeto.

OBJETIVOS ESPECIFICOS
Describir conceptos bsicos de la programacin

orientada a objeto. Implementar aplicaciones en el lenguaje de programacin C++ que hagan uso de la POO.

BIBLIOGRAFA RECOMENDADA
Aguilar Joyanes. Programacin en C++. 2000. Editorial Mc Graw Hill. Pp 265-284. Zimerman Heilleman. Estructuras de datos. Editorial Mc Graw Hill. Pp 121 Deytel & Deytel. Como Programar en C++?. Editorial McGraw Hill. Pp 394-417, 592-785,

BIBLIOGRAFA RECOMENDADA
Schildt Herbert. C++ Guia de autoenseanza. 1999. Editorial Mc Graw Hill. Pp 1-189, 251-288. Student Guide Sun Microsystems. Introduction to java Programming Language. Modules 1-10. Student Guide Sun Microsystems. Java Programming Language Volumen 1. Modules 1-9.

BIBLIOGRAFA RECOMENDADA
Student Guide Sun Microsystems. Introduction to java Programming Language. Modules 1-10. Student Guide Sun Microsystems. Java Programming Language Volumen 1. Modules 19.

BIBLIOGRAFA RECOMENDADA
Student Guide Sun Microsystems. Java Programming Language Volumen 2. Modules 1015.

INTRODUCCIN
Desde sus comienzos, la programacin ha estado gobernada, por varias metodologas.
La programacin estructurada. La programacin orientada a objeto.

CLASES
Las clases son los bloques de construccin fundamentales de los programas orientados a objetos.

DECLARACIN DE UNA CLASE


Class nombre-clase{ funciones y variables privadas de la clase public: funciones y variables pblicas de la clase } lista de objetos;

DECLARACIN DE UNA CLASE


Ejemplo: class empleado{ float sueldo,prestacion; int aniotrab; public: void colocar(float suel,int atrab); float get_prest(); };

OBJETOS DE CLASES
Para crear un objeto, debe utilizarse el nombre de la clase como un especificador de tipo.

<nombre de la clase> <identificador>; Ejemplo: empleado ob1,ob2;

FUNCIN MIEMBRO
Son funciones que se incluyen dentro de una clase (en algunos lenguajes orientados a objetos, se denominan mtodos). La sintaxis es: tipo nombre_clase::nombre-func(parmetros){ ...//Cuerpo de la funcin }

FUNCIN MIEMBRO
void empleado::colocar(float suel,int atrab){ sueldo=suel; aniotrab=atrab; } float empleado::get_prest(){ return(sueldo); }

TIPOS DE FUNCIONES MIEMBROS


Constructores y Destructores. Selectores. Modificadores o mutadores. Operadores. Iteradores.

CONSTRUCTOR
Es una funcin miembro de propsito especifico que se ejecuta automticamente cuando se crea un objeto de una clase.

TIPOS DE CONSTRUCTORES
Por defecto. Alternativo. Sobrecargado. Copia.

CONSTRUCTOR POR DEFECTO


Un constructor que no tiene parmetros se llama constructor por defecto. Un constructor por defecto normalmente inicializa los miembros datos asignndoles valores por defecto.

CONSTRUCTOR POR DEFECTO


Ejemplo:
class punto{ private: int x,y; public: punto(); }; punto::punto(){ x=0; y=0; } punto p1;

CONSTRUCTOR ALTERNATIVO
Un constructor con parmetros se denomina constructor alternativo. Ejemplo: class punto{ private: int x,y; public: punto(int valx,int valy);

CONSTRUCTOR ALTERNATIVO
punto::punto(int valx,int valy){ x=valx; y=valy; } punto p1(25,50);

CONSTRUCTOR SOBRECARGADO
Son bastante frecuentes; proporcionan medios alternativos para inicializar objetos nuevos de una clase.

CONSTRUCTOR SOBRECARGADO
Ejemplo:
class punto{ private: int x,y; public: punto(); punto(int valx, int valy); }; punto::punto(){ x=0; y=0; }

CONSTRUCTOR SOBRECARGADO
punto::punto(int valx, int valy){ x=valx; y=valy; } punto p; punto q(25,50);

CONSTRUCTOR DE COPIA
Se llama automticamente cuando un objeto se pasa por valor: Se construye una copia local del objeto que se construye. El constructor de copia se llama tambin cuando un objeto se declara e inicializa con otro objeto del mismo tipo.

CONSTRUCTOR DE COPIA
Ejemplo:
class punto{ private: int x,y; public: punto(); punto(punto obj); }; punto::punto(){ x=0; y=0; }

CONSTRUCTOR DE COPIA
punto::punto(punto obj){ obj.x=10; obj.y=20; } punto P; punto T(P); punto Q=P;

DESTRUCTOR
Es una funcin miembro especial, que se llama automticamente siempre que se destruye un objeto de la clase.

SELECTORES
Son aquellas funciones miembros que devuelven valores de los miembros datos.

MODIFICADORES O MUTADORES
Son funciones miembros que permiten a un programa cliente cambiar los contenidos de los miembros datos.

ITERADORES
Son funciones miembros que procesan colecciones de objetos, tales como array.

PRINCIPIOS DE LA POO
Encapsulamiento. Polimorfismo. Herencia.

ENCAPSULAMIENTO
Un principio fundamental en la programacin orientada a objetos es la ocultacin de la informacin que significa que a determinado datos del interior de una clase no se puede acceder por funciones externa a la clase.

ENCAPSULAMIENTO
El lenguaje de programacin C++ emplea o utiliza tres diferentes especificadores de acceso para controlar el acceso a los miembros de la clase: public, private y protected.

ENCAPSULAMIENTO
En general se suele emplear el siguiente formato en las definiciones de clases:
Class nombre-clase{ public: //miembros pblicos protected: //miembros protegidos private: //miembros privados };

VISIBILIDAD
Tipo de miembro Private Miembro de la misma clase X Amiga Miembro de una clase derivada Funcin no miembro

Protected
Public

X
X

X
X

X
X X

POLIMORFISMO
Es la cualidad que permite que un nombre se utilice para dos o ms propsitos relacionados, pero tcnicamente diferentes. El propsito del polimorfismo aplicado a la POO es permitir poder usar un nombre para especificar una clase general de acciones.

POLIMORFISMO
El polimorfismo se puede aplicar a: Funciones (sobrecarga). Operadores (sobrecarga).

HERENCIA
Es el proceso mediante el cul un objeto puede adquirir las propiedades de otro.

HERENCIA
En C++ la herencia se clasifica en: Herencia Simple. Herencia Mltiple.

HERENCIA SIMPLE
Cuando una clase hereda a otra, se usa la forma general: class nom_clase_derivada: especif_acceso nom_clase_base{ //.... }

HERENCIA SIMPLE
Donde el especificador de acceso puede ser: public, private o protected

HERENCIA SIMPLE
Cuando el especificador de acceso para la clase base heredada es public, todos los atributos pblicos de la clase base se convierten en atributos pblicos de la clase derivada.

HERENCIA SIMPLE
Si el especificador de acceso es private, todos los atributos pblicos de la clase base pasan a ser atributos privados de la clase derivada.

USO DE ATRIBUTOS PROTEGIDOS


El especificador de acceso protected es equivalente al especificador private, con la nica excepcin de que los atributos protegidos de una clase base son accesibles para los miembros de cualquier clase derivada de esa base.

USO DE ATRIBUTOS PROTEGIDOS


Cuando una clase derivada hereda de una clase base como pblico un atributo protegido, ste se convierte para la clase derivada en un atributo protegido.

USO DE ATRIBUTOS PROTEGIDOS


Si se hereda de la clase base como private, entonces el atributo protegido de la clase base se convierte en atributo protegido de la clase derivada.

USO DE ATRIBUTOS PROTEGIDOS


Una clase base tambin puede ser heredada como protected por una clase derivada. Cuando se da este caso, los atributos protegidos y pblicos de la clase base pasan a ser atributos protegidos en la clase derivada.

CONSTRUCTORES, DESTRUCTORES Y HERENCIA


Cuando una clase base y una clase derivada tienen funciones constructoras y destructoras, las funciones constructoras se ejecutan en orden descendente. Las funciones destructoras se ejecutan en orden inverso.

CONSTRUCTORES, DESTRUCTORES Y HERENCIA


Si se requiere pasar un argumento al constructor de la clase base, se debe establecer un canal de paso de argumentos. En primer lugar, se pasan todos los argumentos necesarios para la clase base y derivada al constructor de la clase derivada.

CONSTRUCTORES, DESTRUCTORES Y HERENCIA


La sintaxis de paso de un argumento de la clase derivada a la clase base es: Constructor_derivada(lista_arg): clase base(lista _arg){ //Cuerpo del constructor de la clase derivada }

CONSTRUCTORES, DESTRUCTORES Y HERENCIA


Se admite que tanto la clase base como la clase derivada utilicen el mismo argumento. Tambin es posible que la clase derivada ignore todos los argumentos y slo los pase a la clase derivada.

HERENCIA MLTIPLE
Existen dos modos en los que una clase derivada puede heredar ms de una clase base: Indirecta. Directa

HERENCIA MLTIPLE INDIRECTA


Las funciones constructoras se llaman en orden de derivacin: B1 D1 D2

HERENCIA MLTIPLE INDIRECTA


Las funciones destructoras se llaman en orden inverso: B1

D1
D2

HERENCIA MLTIPLE DIRECTA


B1 B2

D1

CLASES BASE VIRTUALES


Cuando una clase derivada hereda mltiples clases puede surgir algn problema. Para entender el problema, consideremos la siguiente jerarqua de clase.

CLASES BASE VIRTUALES


Base Base

Derivada1

Derivada 2

Derivada3

! ...

También podría gustarte