Unidad II Introduccion A La POO
Unidad II Introduccion A La POO
Unidad II Introduccion A La POO
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.
OBJETOS DE CLASES
Para crear un objeto, debe utilizarse el nombre de la clase como un especificador de tipo.
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); }
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 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.
HERENCIA MLTIPLE
Existen dos modos en los que una clase derivada puede heredar ms de una clase base: Indirecta. Directa
D1
D2
D1
Derivada1
Derivada 2
Derivada3
! ...