Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Intro Ducci On Poo
Intro Ducci On Poo
Informática Industrial
Ing. en automática y electrónica Industrial
Objetivos principales
Exponer las ideas básicas de la
programación orientada a objetos (POO)
cuenta01.asignarNombre(“Pepito”);
cuenta01.asignarCuenta(“123456790”);
cuenta01.asignarTipoDeInteres(2.5);
cuenta01.ingreso(12000);
cuenta01.reintegro(3000);
class cCuenta {
private: //Atributos
double tipoDeInteres;
double saldo;
string cuenta;
string nombre;
public: //Métodos
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 Informática Industrial 2006/07 15
// FICHERO: cCuenta.cpp
// Código asociado a cada uno de los métodos
#include "cCuenta.h"
string cCuenta::obtenerNombre() {
return nombre;
}
... // Continúa
double cCuenta::estado() {
return saldo;
}
... // etc.
int main()
{
cCuenta cuenta01; //Creación de un objeto a parir de
//la clase cCuenta
cuenta01.asignarNombre(“Pepito”);
cuenta01.asignarCuenta(“123456790”);
cuenta01.asignarTipoDeInteres(2.5);
cuenta01.ingreso(12000);
cuenta01.reintegro(3000);
return 0;
}
Isidro Calvo Informática Industrial 2006/07 18
Isidro Calvo Informática Industrial 2006/07 19
Constructor
Un constructor es un método especial que es
llamado automáticamente al crear un objeto de
esa clase
Contiene el código que se ejecuta al iniciar el
objeto
Tiene el mismo nombre que la clase
No puede retornar ningún valor (ni siquiera void)
Si no se escribe uno se adopta uno por defecto
Puede haber más de un constructor, con
diferentes parámetros
//DESTRUCTOR
virtual ~cCuenta();
// Resto de métodos
...
};
Isidro Calvo Informática Industrial 2006/07 21
Constructores (cCuenta.cpp)
cCuenta::cCuenta()
{
saldo=0;
tipoDeInteres=0.0;
}
int main()
{
//Constructor POR DEFECTO: cCuenta::cCuenta()
cCuenta cuenta01;
//Constructor cCuenta::cCuenta(parametros)
cCuenta cuenta02(“Juanito”, “0987654321”, 6000, 3.5);
cuenta01.asignarNombre(“Pepito”);
cuenta01.ingreso(12000);
//...
cout << “Nombre: ” << cuenta01.obtenerNombre() << endl;
cout << “Saldo: “ << cuenta01.estado() << endl;
return 0;
}
Isidro Calvo Informática Industrial 2006/07 23
Destructor
En muchas ocasiones un objeto debe
realizar alguna(s) accion(es) cuando
se destruye
P.e. Liberar memoria
Es llamado automáticamente cuando
el objeto se destruye
Tiene el mismo nombre que el
constructor (la clase), pero precedido
con el símbolo ~
Isidro Calvo Informática Industrial 2006/07 24
Características de la POO
Encapsulamiento
Concepto de una caja negra.
Parte del código o datos pueden ser privados al objeto e
inaccesibles fuera de él
Herencia
Un objeto puede adquirir las propiedades de otro objeto y
expandirlas
Permite clasificaciones jerárquicas
Polimorfismo
Se permite usar el mismo nombre de un método para varios
propósitos relacionados pero ligeramente diferentes
Clase
ClasecCuenta
cCuenta
Clase
ClasecCuentaCorriente
cCuentaCorriente Clase
ClasecCuentaAhorro
cCuentaAhorro
// CONSTRUCTOR
cCuentaAhorro::cCuentaAhorro(string nom, string cue,
double sal, double tipo, double mant) {
asignarNombre(nom);
asignarCuenta(cue);
saldo=sal;
tipoDeInteres=tipo;
asignarCuotaManten(mant);
}
// CÓDIGO DE LOS MÉTODOS
void cCuentaAhorro::asignarCuotaManten(double cantidad) {
if(cantidad < 0) {
cout << "Error: cantidad negativa" << endl;
return;
}
cuotaMantenimiento = cantidad;
}
... // etc.
rgAux.real = cuadrado(prg->real) –
cuadrado(prg->imag);
rgAux.imag = 2*prg->real*prg->imag;
(*prg) = rgAux;
return (prg);
}