Documentos de Académico
Documentos de Profesional
Documentos de Cultura
IntroduccionPOO PDF
IntroduccionPOO PDF
Informtica Industrial
Ing. en automtica y electrnica Industrial
Objetivos principales
Qu es la POO?
Clase: Cuenta
Atributos (Informacin de la cuenta):
Nombre
Nmero de cuenta
Saldo
Ingresar Dinero
Retirar Dinero
Abonar Intereses
Obtener Saldo Actual
Ordenar Transferencia
Isidro Calvo
Lenguajes de programacin OO
C++
Java
Delphi (Object Pascal)
Visual Basic
Ada
etc
Isidro Calvo
Isidro Calvo
Programas OO
Isidro Calvo
10
11
12
Programa principal
int main()
{
cCuenta cuenta01;
cuenta01.asignarNombre(Pepito);
cuenta01.asignarCuenta(123456790);
cuenta01.asignarTipoDeInteres(2.5);
cuenta01.ingreso(12000);
cuenta01.reintegro(3000);
cout
cout
cout
cout
<<
<<
<<
<<
}
Isidro Calvo
13
Ficheros involucrados
Isidro Calvo
14
// FICHERO: cCuenta.h
// Contiene la estructura de la clase cCuenta
#include <iostream.h>
#include <string.h>
using namespace std;
class cCuenta {
private:
//Atributos
double tipoDeInteres;
double saldo;
string cuenta;
string nombre;
public:
//Mtodos
cCuenta();
//Constructor
virtual ~cCuenta();
//Destructor
void asignarNombre(string nom);
string obtenerNombre();
void asignarCuenta(string cue);
string obtenerCuenta();
void asignarTipoDeInteres(double tipo);
double obtenerTipoDeInteres();
void reintegro(double cantidad);
void ingreso(double cantidad);
double estado();
};
Isidro Calvo
15
// FICHERO: cCuenta.cpp
// Cdigo asociado a cada uno de los mtodos
#include "cCuenta.h"
void cCuenta::asignarNombre(string nom) {
if(nom.length()==0) {
cout << "Error: cadena vacia" << endl;
return;
}
nombre= nom;
}
string cCuenta::obtenerNombre() {
return nombre;
}
... // Contina
Isidro Calvo
16
17
cuenta01.asignarNombre(Pepito);
cuenta01.asignarCuenta(123456790);
cuenta01.asignarTipoDeInteres(2.5);
cuenta01.ingreso(12000);
cuenta01.reintegro(3000);
cout
cout
cout
cout
<<
<<
<<
<<
return 0;
}
Isidro Calvo
18
Isidro Calvo
19
Constructor
Isidro Calvo
20
Constructores (cCuenta.h)
class cCuenta {
private:
//Atributos
double tipoDeInteres;
double saldo;
string cuenta;
string nombre;
public:
//Mtodos
//CONSTRUCTORES
cCuenta();
cCuenta (string nom, string cue,
double sal, double tipo);
//DESTRUCTOR
virtual ~cCuenta();
// Resto de mtodos
...
};
Isidro Calvo
21
Constructores (cCuenta.cpp)
cCuenta::cCuenta()
{
saldo=0;
tipoDeInteres=0.0;
}
cCuenta::cCuenta (string nom, string cue,
double sal, double tipo)
{
asignarNombre(nom);
asignarCuenta(cue);
saldo=sal;
tipoDeInteres=tipo;
}
Isidro Calvo
22
23
Destructor
Isidro Calvo
24
Caractersticas de la POO
Encapsulamiento
Herencia
Polimorfismo
Isidro Calvo
25
Encapsulamiento
class cCuenta {
private:
// protected
double saldo;
string cuenta;
string nombre;
// METODO PRIVADO: Slo puede ser llamado dentro
// la clase cCuenta y no desde el programa principal
void hacerAlgo(void);
public:
cCuenta();
virtual ~cCuenta();
void asignarNombre(string nom);
string obtenerNombre();
void reintegro(double cantidad);
void ingreso(double cantidad);
double estado();
};
Isidro Calvo
26
Clase
ClasecCuentaCorriente
cCuentaCorriente
Isidro Calvo
Clase
ClasecCuentaAhorro
cCuentaAhorro
27
Herencia: cCuentaAhorro.h
La clase cCuentaAhorro hereda
la estructura de cCuenta
//FICHERO: cCuentaAhorro.h
class cCuentaAhorro : public cCuenta {
private:
// Propiedad ADICIONAL
double cuotaMantenimiento;
public:
// Mtodos ADICIONALES
cCuentaAhorro(string nom, string cue,
double sal, double tipo,
double mant);
void asignarCuotaManten(double cantidad);
double obtenerCuotaManten();
// reintegro tapa al mtodo reintegro de cCuenta
void reintegro(double cantidad);
};
Isidro Calvo
28
// FICHERO: cCuentaAhorro.cpp
#include "cCuentaAhorro.h"
// CONSTRUCTOR
cCuentaAhorro::cCuentaAhorro(string nom, string cue,
double sal, double tipo, double mant) {
asignarNombre(nom);
asignarCuenta(cue);
saldo=sal;
tipoDeInteres=tipo;
asignarCuotaManten(mant);
}
// CDIGO DE LOS MTODOS
void cCuentaAhorro::asignarCuotaManten(double cantidad) {
if(cantidad < 0) {
cout << "Error: cantidad negativa" << endl;
return;
}
cuotaMantenimiento = cantidad;
}
... // etc.
Isidro Calvo
29
Clase cCuenta
Atributos
nombre
cuenta
saldo
tipoDeInteres
Mtodos
Isidro Calvo
Constructores cCuenta
asignarNombre
obtenerNombre
asignarCuenta
obtenerCuenta
estado
ingreso
reintegro
asignarTipoDeInteres
obtenerTipoDeInteres
30
Clase cCuentaAhorro
Atributos
nombre
cuenta
saldo
tipoDeInteres
cuotaMantenimiento
Mtodos
Isidro Calvo
Constructores cCuenta
asignarNombre
obtenerNombre
asignarCuenta
obtenerCuenta
estado
ingreso
reintegro
asignarTipoDeInteres
obtenerTipoDeInteres
Constructores cCuentaAhorro
asignarCuotaManten
obtenerCuotaManten
reintegro
31
Polimorfismo
sobrecarga de funciones
Isidro Calvo
32
Ejemplo
//FICHERO: cOperaciones.h
class cOperaciones {
public:
//...
int calcularCuadrado(int i);
double calcularCuadrado(double d);
trgComplejo *calcularCuadrado(trgComplejo *prg);
};
//FICHERO: cOperaciones.cpp
cOperaciones::calcularCuadrado(int i){
return (i*i);
};
cOperaciones::calcularCuadrado(double d){
return (d*d);
};
// ... sigue
Isidro Calvo
33
Ejemplo
//FICHERO: cOperaciones.cpp
//Contina de la trasparencia anterior
trgComplejo * cOperaciones::cuadrado(trgComplejo *prg)
{
trgComplejo rgAux;
rgAux.real = cuadrado(prg->real)
cuadrado(prg->imag);
rgAux.imag = 2*prg->real*prg->imag;
(*prg) = rgAux;
return (prg);
}
Isidro Calvo
34
Ejemplo
#include <iostream.h>
int main(void)
{
int i;
double num;
trgComplejo rgNum, * prg;
cOperaciones Objeto;
cout << "Dame un numero entero: ";
cin >> i;
cout << i << ": " << Objeto.cuadrado(i) << endl;
//...
Objeto.cuadrado(num);
//...
prg = Objeto.cuadrado(&rgNum);
//...
}
Isidro Calvo
35
Isidro Calvo
36
asm
catch
class
delete
friend
inline
new
operator
overload
Isidro Calvo
private
protected
public
template
this
throw
try
virtual
37
Conclusiones
C++ es un superconjunto de C
Isidro Calvo
38