Programación Orientada a Objetos usando C++ LAS CLASES EN C++

29
Programación Orientada a Objetos usando C++ LAS CLASES EN C++

Transcript of Programación Orientada a Objetos usando C++ LAS CLASES EN C++

Page 1: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

Programación Orientada a Objetos

usando C++

LAS CLASES EN C++

Page 2: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

2

TÓPICOS

Clases Especificadores de accesoMétodos – Mensajes - InterfazPrototipoConstructores - DestructoresSobrecarga de funciones

Page 3: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

3

Ejercicios

FracciónCuenta CorrienteVendedorAlumnoComplejos

Page 4: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

4

Estructura de una clase

class <nombre>{private:

<datos privados><métodos privados>

public:<datos públicos><método públicos>

protected:<datos protegidos><método protegidos>

};

Page 5: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

5

Ejemplo

class Uno{private:

int k;float x;

public:procedim(int x);int funcion();

};Uno a, *b;

Page 6: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

6

Ejemplo

class Empleado{private:

char *nom;char *app;float sueldo;

public:void Imprimir_Datos();float Mostrar_Sueldo();

};

Page 7: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

7

Conceptos

Especificador de acceso:public:private:protected:

Ningún miembro podrá ser objeto de la clase que está siendo declarada.

Ningún miembro puede declararse como:autoexternregister

Page 8: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

8

Atributos de control de accesos

public:

protected:

private:

usuarios en general FM o FM de clases derivadas

Sólo FM o amigas

FM: Funciones Miembro

(Métodos)

FM: Funciones Miembro

(Métodos)

Page 9: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

9

Métodos

Los métodos se pueden implementar:

a. Dentro de la declarativa de la clase

b. A continuación de la declarativa de la clase

Tipo Nombre_Clase::Método(parámetros)

{sentencias}

Tipo Método(parámetros)

{sentencias}

Page 10: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

10

Método: Constructor

Se invoca automáticamente al declarar un objeto de la clase.

Método con el mismo nombre de la clase

inicializar un objeto Propósito explícito:

Page 11: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

11

Método: Constructor

Único medio para inicializar un objeto.

Cuando una clase tiene un constructor TODOS los objetos de dicha clase son inicializados.

NO se puede invocar directamente.

Page 12: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

12

Mensaje

Mecanismo por el cual el usuario solicita a un objeto que realice alguna acción.

El objeto, si reconoce el mensaje, activa el método adecuado en respuesta al mensaje.

objeto.método_público(argumentos)

Page 13: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

13

Interfaz

Mecanismo por el cual un objeto puede comunicarse con su medio.

Está formada por todos los métodos públicos de la clase.

public: Fraccion();

void Listar();

int Numerador();

int Denominador();

float Equivalente();

Page 14: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

14

Ejemplo1: Fracción

Numerador Denominador != 0 Ambos enteros Crear una fracción con datos desde el teclado Conocer su numerador Conocer su denominador Obtener su equivalente real.

Page 15: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

15

Objetos: tipo Fracción

yx

num: 5

den: 7

Listar()

Numerador()

Denominador()

Equivalente()

f:num: 1

den: 2

Listar()

Numerador()

Denominador()

Equivalente()

f1:num: 3

den: 8

Listar()

Numerador()

Denominador()

Equivalente()

f2:

Page 16: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

16

Mensajes

Equivalente 0,333

f

13

Listar()

Numerador()

Denominador()

Equivalente()

Page 17: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

17

Clase Fracción

class Fraccion {public:

Fraccion();

void Listar();

int Numerador();

int Denominador();

float Equivalente();

private:

int num;

int den;

}

Constructor

Métodos

Variables miembros

Page 18: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

18

Sobrecarga de funciones Igual nombre de funciones Se diferencian en :

La cantidad de parámetros y Tipo de dato de los parámetros.

class Fraccion {public:

Fraccion(); Fraccion(int,int);

void Listar();

int Numerador(); :

}

Page 19: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

19

Constructores por defecto

No poseen argumentos, o

Los argumentos tienen valores asignados.

Fracción f;Fraccion()

Fraccion(int x=0,int y=1)

Page 20: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

20

Clase Fracciónclass Fraccion

{public: Fraccion();

Fraccion(int,int);

void Listar();

int Numerador();

int Denominador();

float Equivalente();

private:

int num;

int den;

}

Page 21: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

21

Uso clase Fracción

void main()

{Fraccion f;

Fraccion g(2,3);

f.Listar();

cout<<f.Numerador();

cout<<"Equivalente de: "<<endl;

cout<<f.Numerador()<<" /" <<f.Denominador() <<": ";

cout<<f.Equivalente()<<endl;

cout<<g.Numerador()<<" /" <<g.Denominador() <<": ";

cout<<g.Equivalente()<<endl;}

ConstructoresConstructores

Mensaje

Page 22: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

22

Creación de objetos

Fraccion f1;

x = f1. Numerador( );

Estático:

Fraccion *f1;f1 = new Fraccion( );

x = (*f1).Numerador( );

x = f1->Numerador();

Dinámico:

Page 23: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

23

Destructores

Invocación: Se llama en forma implícita cuando una variable está fuera de su alcance o ámbito. (bloque en el que fue declarada).

Utilidad: Liberar recursos solicitados por el constructor. Objeto en el heap: se destruye con el operador

delete.

No se requiere implementar si no se utiliza almacenamiento dinámico como parte del objeto.

Page 24: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

24

Ejemplo: Fracciónvoid main(){int n,d;

Fraccion f1;f1.Imprimir();

cout<<f1.Equivalente()<<endl;do

{cout<<"Numerador : "; cin>>n; cout<<"Denominador: "; cin>>d; if (d!=0)

{ Fraccion f2(n,d); f2.Imprimir();

cout<<f2.Equivalente()<<endl; }

}while (d!=0);}

//Se crea el objeto f1

//Creación de f2

//Destrucción f1

//Destrucción f1

Page 25: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

Ejemplos a desarrollar

Page 26: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

26

Ejemplo 1: Cta. Cte

Una cuenta corriente se puede representar por :

Saldo

Operaciones como:

Depositar(cantidad)

Girar(cantidad)

Saldo()

Page 27: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

27

Ejemplo 2: Vendedor

Registro sobre sus ventas mensuales.

Crear un vendedor. Inicializa las ventas mensuales.

Registrar las ventas mensuales.

Desplegar la venta anual

Page 28: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

28

Ejemplo 3: Alumno

Registro sobre sus datos generales

Realizar inscripción de una asignatura Realizar un registro de nota de asignatura

aprobada. Listar información general del alumno Listar asignaturas inscritas. Listar asignaturas aprobadas

Page 29: Programación Orientada a Objetos usando C++ LAS CLASES EN C++

29

Ejemplo 4: Complejos

Parte real Parte imaginaria

e=5+3i