La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación Gráfica 8. Clases y objetos.

Presentaciones similares


Presentación del tema: "Programación Gráfica 8. Clases y objetos."— Transcripción de la presentación:

1 Programación Gráfica 8. Clases y objetos

2 Clases

3 Clases En Programación orientada a objetos, cada objeto del mundo real puede ser presentado como una clase en el programa. Se pueden instanciar múltiples objetos de esa clase, cada una con diferentes atributos.

4 Declaración class <identificador de clase> {
<lista de miembros> };

5 Especificadores de acceso
class <identificador de clase> { public: <lista de miembros> private: protected: };

6 Especificadores de acceso
class Jugador { private: MovType mov_type; Sprite* sp; float velocity; public: Jugador(SceneManager* sm); void Move(MovType type); void Stop(MoveType type); void LoopJugador(); };

7 Especificadores de acceso
Acceso privado, private: Los miembros privados de una clase sólo son accesibles por los propios miembros de la clase, pero no desde funciones externas o desde funciones de clases derivadas. Acceso publico, public: Cualquier miembro público de una clase es accesible desde cualquier parte donde sea accesible el propio objeto.

8 Especificadores de acceso
Acceso protegido, protected: Con respecto a las funciones externas, es equivalente al acceso privado, pero con respecto a las clases derivadas se comporta como público

9 Constructores Son funciones especiales que nos permiten inicializar el objeto asociado a la clase, y así mismo inicializar todos sus valores. Tienen el mismo nombre que la clase, no retornan ningún valor y por lo general son public.

10 Constructores Jugador::Jugador(SceneManager* sm) {
this->sp = sm->CreateSprite("naveJugador","nave.bmp",0.0f,0.0f); this->velocity = 2.0f; this->mov_type = MovType::MOV_NONE; }

11 Sobrecarga de constructores
Al igual que las funciones, éstas se pueden sobrecargar de igual manera. Jugador(SceneManager* sm); Jugador(SceneManager* sm, int x, int y); Jugador(SceneManager* sm, int x, int y, char name[50]);

12 Creación de objetos Para crear un objetos se debe asignar espacio en memoria para dicho objeto y sus componentes. Para ir al espacio de memoria asignado se ocupan PUNTEROS. Un objeto no es más que una instancia de una clase, y por lo tanto se pueden crear tantas instancias como memoria se tenga.

13 Objetos Para crear objetos se utiliza el operador * y la palabra reservada new. Jugador* jugador1 = new Jugador(sm) Jugador* jugador2 = new Jugador(sm, 0, 100); Jugador* jugador3 = new Jugador(sm, 0, 100, “Terminator”);

14 Funciones Cada clase puede tener funciones que representarán las acciones que puede realizar un objeto en el mundo real -> POO. Ejemplo: Un Soldado puede: Disparar, Correr, Cargar su arma, etc. Un Auto puede: Aplicar Turbo, Avanzar, Girar, etc.

15 Funciones - Ejemplo Se tiene una enumeración que indique los movimientos que puede hacer un jugador. enum MovType { MOV_NONE, MOV_UP, MOV_RIGHT, MOV_LEFT, MOV_DOWN };

16 Funciones - Ejemplo void Jugador::Move(MoveType mov_Type) {
switch(mov_type) case MOV_UP: sp->SetPosition(sp->getPositionX(), sp->getPositionY() - velocity); break; case MOV_LEFT: sp->SetPosition(sp->getPositionX() - velocity, sp->getPositionY()); case MOV_RIGHT: sp->SetPosition(sp->getPositionX() + velocity, sp->getPositionY()); case MOV_DOWN: sp->SetPosition(sp->getPositionX(), sp->getPositionY() + velocity); default: }

17 Funciones Para llamar a las funciones de un objeto se ocupa el operador -> jugador1->Move(MoveType::MOV_DOWN); jugador2->Move(MoveType::MOV_UP);

18 Destructores Sirven para eliminar un objeto de una clase determinada, liberando memoria utilizada por el objeto. ~WorldManager() { delete background; delete jugador; delete sm; }

19 C++ .NET En C++ .NET las clases son administradas, esto quiere decir que el entorno provee servicios automáticos al código que se ejecuta. Para declarar una clase se utiliza la palabra reservada “ref”. ref class Jugador { <cuerpo> };

20 C++ .NET Para asignar memoria y crear objetos se utiliza el operador ^ y la palabra reservada gcnew. Jugador^ jugador = gcnew Jugador(sm); Para llamar a funciones del objeto, es lo mismo que en c++ standar. jugador->Mover(MoveType::MOV_UP);

21 Preguntas ¿? 21


Descargar ppt "Programación Gráfica 8. Clases y objetos."

Presentaciones similares


Anuncios Google