SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
POO	
  
Clases	
  -­‐ Abstracción	
  de	
  Datos
Gloria	
  Isabel	
  Bautista	
  Lasprilla
bautistalasprilla.gloriaisabel@gmail.com
gloria@utbvirtual.edu.co
gbautista@unitecnologica.edu.co
§ La Programación Orientada a Objetos (POO) encapsula datos (atributos)
y funciones (métodos) en paquetes llamados clases.
§ Los datos y las funciones de una clase se encuentran íntimamente
ligados entre sí.
§ A partir de una clase un programador puede construir un objeto.
§ Una clase se puede reutilizar muchas veces para definir objetos y usar
sus métodos.
§ Las clases en C++ son la evolución natural del tipo de dato struct
proveniente de C.
Definición	
  
§ Esto significa que aunque los objetos de una clase pueden saber cómo
comunicarse entre sí, a través de interfaces bien definidas, por lo general
a las clases no se les permite saber cómo se implementan otras clases; los
detalles de implementación están ocultos dentro de las mismas clases.
§ “Es posible conducir un automóvil de manera efectiva sin conocer los
detalles de cómo funcionan internamente los sistemas del motor”
Propiedad	
  de	
  ocultar	
  información	
  
C C++
Programación	
  por	
  Procedimientos POO
Programación	
  orientada	
  a	
  Acciones Programar	
  con	
  Orientación	
  a	
  Objetos
Unidad	
  de	
  Programación:	
  Función Unidad	
  de	
  Programación:	
  Clase
Comparativo	
  
§ Los programadores en C se concentran en escribir funciones.
§ Los programadores en C++ se concentran en crear sus propios tipos definidos por
el usuario llamados clases.
§ Cada clase contiene datos expresados como atributos de un objeto, y el conjunto
de métodos que procesan esos atributos.
§ A los datos que componen una clase se les llaman atributos o datos miembros del
objeto.
§ A los procesos que componen una clase se les llama métodos.
Implementación del tipo de dato abstracto Tiempo mediante una clase
#ifndef TIEMPO_H
#define TIEMPO_H
class Tiempo
{
public:
Tiempo ( );
void estableceHora (int, int, int);
void imprimeUniversal ( );
void imprimeEstandar ( );
private:
int hora, minuto, segundo;
};
Tiempo::Tiempo ( )
{
hora = minuto = segundo = 0;
}
Definición del objeto Tiempo
El constructor inicializa cada atributo en cero y garantiza
que todos los objetos Tiempo comiencen en un estado
consistente
Directivas de preprocesador, previene la inclusión múltiple
del archivo de encabezado, #ifndef significa “si no está
definido”, se define mediante la directiva #define
Tiempo.h
Atributos del objeto Tiempo
Métodos de la clase Tiempo
void Tiempo::estableceHora (int h, int m, int s)
{
hora = ( h >= 0 && h < 24 ) ? h : 0 ;
minuto = ( m >= 0 && m < 60 ) ? m : 0 ;
segundo = ( s >= 0 && s < 60 ) ? s : 0 ; }
void Tiempo::imprimeUniversal ( )
{ cout<<hora<<“:”<<minuto<<“:”<<segundo; }
void Tiempo::imprimeEstandar ( )
{
cout<<(( hora == 0 | | hora == 12 ) ? 12 : hora%12 );
cout<<“:”<<minuto<<“:”<<segundo;
cout<<( hora < 12 ? “ AM” : “ PM” );
}
#endif
Método estableceHora
Permite un nuevo valor para Tiempo
de acuerdo con la hora universal,
realiza la validación de los valores
de datos y establece los valores no
válidos en cero
Método imprime
Escribe en pantalla el objeto Tiempo
en formato universal
Imprime Tiempo en formato
estándar
Directiva de preprocesador, donde indica que ya está
definido.
int main ( )
{
Tiempo t ;
t . imprimeUniversal ( );
cout<<“nLa hora Estándar inicial es: “;
t . imprimeEstandar ( );
t . estableceHora ( 13, 27, 6 );
cout<<“nLa hora Universal después de establece: “;
t . imprimeUniversal ( );
cout<<“nLa hora Estándar después de establece: “;
t . imprimeEstandar ( ); return 0;
}
Definición de un objeto t de la clase Tiempo.
Llamado al método imprimeUniversal, muestra los valores
iniciales del objeto t de la clase Tiempo.
Modifica hora.
Muestra los valores después de modificar.
El ejecutable que prueba la clase Tiempo
§ Un constructor es una función miembro especial que tiene el mismo
nombre de la clase y no devuelve un tipo de dato.
§ El constructor se invoca entonces cada vez que se define un objeto de
dicha clase (esto significa que se crea la instancia).
§ Los constructores pueden sobrecargarse para producir distintas maneras
de inicializar a los objetos de una clase.
§ Constructor de copia
§ Destructor
§ Es una buena práctica de Ingeniería de Software asegurarse de que un
objeto se inicializa por completo antes de que el código cliente invoque a
las funciones miembro del objeto.
Constructores	
  
§ Los especificadores de acceso a miembros public y private controlan el
acceso a los datos y a las funciones miembro de una clase.
§ El modo de acceso predeterminado para las clases es private, de
manera que todos los miembros después del encabezado y antes del
primer especificador de acceso a miembros son privados.
§ Es posible repetir los especificadores de acceso a miembros public,
private y protected, pero hacerlo no es común y puede resultar confuso.
Control	
  de	
  acceso	
  a	
  los	
  miembros	
  
§ Un destructor es otro tipo de función miembro especial de una clase,
se representa con el carácter (~) seguido por el nombre de la clase.
§ Un destructor no recibe parámetros ni devuelve valor.
§ El compilador llama implícitamente a los constructores y destructores.
§ El orden en el que ocurren estas llamadas a función depende del
orden en el que la ejecución introduce y rebasa el alcance en el que
estos objetos se crean.
Destructores	
  
La clase Vendedor
#ifndef VENDEDOR_H_INCLUDED
#define VENDEDOR_H_INCLUDED
#include <iostream>
using namespace std;
class Vendedor
{
public:
Vendedor();
void obtieneVentas();
void estableceVentas(int, double);
void imprimeVentas();
private:
double totalVentas();
double ventas[12];
};
Definición del objeto Vendedor
Métodos de la clase Vendedor
Atributo del objeto Vendedor
Método privado de la clase Vendedor
Vendedor::Vendedor()
{
for(int i = 0; i < 12; i++)
ventas[i] = 0.0;
}
void Vendedor::obtieneVentas()
{
double cantVentas;
for(int i = 1; i <= 12; i++)
{
cout<<"nIntroduzca monto de ventas del mes "<<i<<": ";
cin>>cantVentas;
estableceVentas(i, cantVentas);
}
}
Constructor del objeto Vendedor
Implementación del método
obtieneVentas
void Vendedor::estableceVentas(int mes, double monto)
{
if (mes >= 1 && mes <= 12 && monto > 0)
ventas[mes-­‐1] = monto;
else
cout<<"ntValor no valido"<<endl;
}
void Vendedor::imprimeVentas()
{
cout<<"nnLas ventas anuales totales son: $ ";
cout<<totalVentas()<<endl;
}
double Vendedor::totalVentas()
{
double total = 0.0;
for(int i = 0; i < 12; i++)
total += ventas[i];
return total;
}
#endif // VENDEDOR_H_INCLUDED
Implementación del método
estableceVentas
Implementación del método
imprimeVentas
Implementación del método
totalVentas
#include <iostream>
#include "Vendedor.h"
using namespace std;
int main()
{
Vendedor s;
s.obtieneVentas();
s.imprimeVentas();
return 0;
}
El ejecutable que prueba la clase Vendedor
Definición de un objeto s de la clase Vendedor.
Llamado a los métodos de la clase Vendedor.
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
Ezer Ayala Mutul
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
lindacajaperuiz
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic net
pp mm
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
Libertad25
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .net
johnny herrera
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
ale8819
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
Whaleejaa Wha
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prev
jtk1
 

La actualidad más candente (20)

Qué es la poo
Qué es la pooQué es la poo
Qué es la poo
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic net
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .net
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prev
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 

Similar a Definición de clases en POO

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
Alelt2890
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
Antonio Palomares Sender
 

Similar a Definición de clases en POO (20)

Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Cplus
CplusCplus
Cplus
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Leguaje de programacion C#
Leguaje de programacion C#Leguaje de programacion C#
Leguaje de programacion C#
 
UD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdfUD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdf
 
El apuntador this
El apuntador this El apuntador this
El apuntador this
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2
 
Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Programación ii presentación tema 5
Programación ii presentación tema 5Programación ii presentación tema 5
Programación ii presentación tema 5
 

Más de Gloria Isabel Bautista Lasprilla

Más de Gloria Isabel Bautista Lasprilla (12)

Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Complejidad computacional 1
Complejidad computacional 1Complejidad computacional 1
Complejidad computacional 1
 
Profesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTBProfesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTB
 
Complejidad computacional selección
Complejidad computacional   selecciónComplejidad computacional   selección
Complejidad computacional selección
 
Poster - presentación
Poster - presentaciónPoster - presentación
Poster - presentación
 
Recorridos en ABB
Recorridos en ABB Recorridos en ABB
Recorridos en ABB
 
Abb árboles de búsqueda binaria
Abb árboles de búsqueda binariaAbb árboles de búsqueda binaria
Abb árboles de búsqueda binaria
 
Poo presentacion
Poo presentacionPoo presentacion
Poo presentacion
 
Presentacion encuentro gloria bautista
Presentacion encuentro   gloria bautistaPresentacion encuentro   gloria bautista
Presentacion encuentro gloria bautista
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicosModelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
 
Articulación Educación Media con Superior
Articulación Educación Media con SuperiorArticulación Educación Media con Superior
Articulación Educación Media con Superior
 

Definición de clases en POO

  • 1. POO   Clases  -­‐ Abstracción  de  Datos Gloria  Isabel  Bautista  Lasprilla bautistalasprilla.gloriaisabel@gmail.com gloria@utbvirtual.edu.co gbautista@unitecnologica.edu.co
  • 2. § La Programación Orientada a Objetos (POO) encapsula datos (atributos) y funciones (métodos) en paquetes llamados clases. § Los datos y las funciones de una clase se encuentran íntimamente ligados entre sí. § A partir de una clase un programador puede construir un objeto. § Una clase se puede reutilizar muchas veces para definir objetos y usar sus métodos. § Las clases en C++ son la evolución natural del tipo de dato struct proveniente de C. Definición  
  • 3. § Esto significa que aunque los objetos de una clase pueden saber cómo comunicarse entre sí, a través de interfaces bien definidas, por lo general a las clases no se les permite saber cómo se implementan otras clases; los detalles de implementación están ocultos dentro de las mismas clases. § “Es posible conducir un automóvil de manera efectiva sin conocer los detalles de cómo funcionan internamente los sistemas del motor” Propiedad  de  ocultar  información  
  • 4. C C++ Programación  por  Procedimientos POO Programación  orientada  a  Acciones Programar  con  Orientación  a  Objetos Unidad  de  Programación:  Función Unidad  de  Programación:  Clase Comparativo   § Los programadores en C se concentran en escribir funciones. § Los programadores en C++ se concentran en crear sus propios tipos definidos por el usuario llamados clases. § Cada clase contiene datos expresados como atributos de un objeto, y el conjunto de métodos que procesan esos atributos. § A los datos que componen una clase se les llaman atributos o datos miembros del objeto. § A los procesos que componen una clase se les llama métodos.
  • 5. Implementación del tipo de dato abstracto Tiempo mediante una clase #ifndef TIEMPO_H #define TIEMPO_H class Tiempo { public: Tiempo ( ); void estableceHora (int, int, int); void imprimeUniversal ( ); void imprimeEstandar ( ); private: int hora, minuto, segundo; }; Tiempo::Tiempo ( ) { hora = minuto = segundo = 0; } Definición del objeto Tiempo El constructor inicializa cada atributo en cero y garantiza que todos los objetos Tiempo comiencen en un estado consistente Directivas de preprocesador, previene la inclusión múltiple del archivo de encabezado, #ifndef significa “si no está definido”, se define mediante la directiva #define Tiempo.h Atributos del objeto Tiempo Métodos de la clase Tiempo
  • 6. void Tiempo::estableceHora (int h, int m, int s) { hora = ( h >= 0 && h < 24 ) ? h : 0 ; minuto = ( m >= 0 && m < 60 ) ? m : 0 ; segundo = ( s >= 0 && s < 60 ) ? s : 0 ; } void Tiempo::imprimeUniversal ( ) { cout<<hora<<“:”<<minuto<<“:”<<segundo; } void Tiempo::imprimeEstandar ( ) { cout<<(( hora == 0 | | hora == 12 ) ? 12 : hora%12 ); cout<<“:”<<minuto<<“:”<<segundo; cout<<( hora < 12 ? “ AM” : “ PM” ); } #endif Método estableceHora Permite un nuevo valor para Tiempo de acuerdo con la hora universal, realiza la validación de los valores de datos y establece los valores no válidos en cero Método imprime Escribe en pantalla el objeto Tiempo en formato universal Imprime Tiempo en formato estándar Directiva de preprocesador, donde indica que ya está definido.
  • 7. int main ( ) { Tiempo t ; t . imprimeUniversal ( ); cout<<“nLa hora Estándar inicial es: “; t . imprimeEstandar ( ); t . estableceHora ( 13, 27, 6 ); cout<<“nLa hora Universal después de establece: “; t . imprimeUniversal ( ); cout<<“nLa hora Estándar después de establece: “; t . imprimeEstandar ( ); return 0; } Definición de un objeto t de la clase Tiempo. Llamado al método imprimeUniversal, muestra los valores iniciales del objeto t de la clase Tiempo. Modifica hora. Muestra los valores después de modificar. El ejecutable que prueba la clase Tiempo
  • 8. § Un constructor es una función miembro especial que tiene el mismo nombre de la clase y no devuelve un tipo de dato. § El constructor se invoca entonces cada vez que se define un objeto de dicha clase (esto significa que se crea la instancia). § Los constructores pueden sobrecargarse para producir distintas maneras de inicializar a los objetos de una clase. § Constructor de copia § Destructor § Es una buena práctica de Ingeniería de Software asegurarse de que un objeto se inicializa por completo antes de que el código cliente invoque a las funciones miembro del objeto. Constructores  
  • 9. § Los especificadores de acceso a miembros public y private controlan el acceso a los datos y a las funciones miembro de una clase. § El modo de acceso predeterminado para las clases es private, de manera que todos los miembros después del encabezado y antes del primer especificador de acceso a miembros son privados. § Es posible repetir los especificadores de acceso a miembros public, private y protected, pero hacerlo no es común y puede resultar confuso. Control  de  acceso  a  los  miembros  
  • 10. § Un destructor es otro tipo de función miembro especial de una clase, se representa con el carácter (~) seguido por el nombre de la clase. § Un destructor no recibe parámetros ni devuelve valor. § El compilador llama implícitamente a los constructores y destructores. § El orden en el que ocurren estas llamadas a función depende del orden en el que la ejecución introduce y rebasa el alcance en el que estos objetos se crean. Destructores  
  • 11. La clase Vendedor #ifndef VENDEDOR_H_INCLUDED #define VENDEDOR_H_INCLUDED #include <iostream> using namespace std; class Vendedor { public: Vendedor(); void obtieneVentas(); void estableceVentas(int, double); void imprimeVentas(); private: double totalVentas(); double ventas[12]; }; Definición del objeto Vendedor Métodos de la clase Vendedor Atributo del objeto Vendedor Método privado de la clase Vendedor
  • 12. Vendedor::Vendedor() { for(int i = 0; i < 12; i++) ventas[i] = 0.0; } void Vendedor::obtieneVentas() { double cantVentas; for(int i = 1; i <= 12; i++) { cout<<"nIntroduzca monto de ventas del mes "<<i<<": "; cin>>cantVentas; estableceVentas(i, cantVentas); } } Constructor del objeto Vendedor Implementación del método obtieneVentas
  • 13. void Vendedor::estableceVentas(int mes, double monto) { if (mes >= 1 && mes <= 12 && monto > 0) ventas[mes-­‐1] = monto; else cout<<"ntValor no valido"<<endl; } void Vendedor::imprimeVentas() { cout<<"nnLas ventas anuales totales son: $ "; cout<<totalVentas()<<endl; } double Vendedor::totalVentas() { double total = 0.0; for(int i = 0; i < 12; i++) total += ventas[i]; return total; } #endif // VENDEDOR_H_INCLUDED Implementación del método estableceVentas Implementación del método imprimeVentas Implementación del método totalVentas
  • 14. #include <iostream> #include "Vendedor.h" using namespace std; int main() { Vendedor s; s.obtieneVentas(); s.imprimeVentas(); return 0; } El ejecutable que prueba la clase Vendedor Definición de un objeto s de la clase Vendedor. Llamado a los métodos de la clase Vendedor.