sesión 06: clases y objetos (2) 1. 2009/1 circuitos digitales iii 2010/1 circuitos digitales iii...

15
Informática II Sesión 06: Clases y Objetos (2) 1

Upload: andrea-sevilla-paz

Post on 03-Feb-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

1

Informática IISesión 06: Clases y Objetos (2)

Page 2: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

Programación Orientada a Objetos

Programación Orientada a Objetos

Caraterísticas

2

•Es la creación de nuevas clases partiendo de una jerarquía de clases ya existente. Mecanismo fundamental para implementar la reutilización

Herencia

•Consiste en aislar un objeto (sistema modular). Centrase más en Que Hace y no Como lo Hace.

Abstracción

•Capacidad que permite utilizar varias clases padre para formar una nueva clase (herencia múltiple)

Polimorfismo

•Capacidad que poseen las clases de estar compuestas por otras clases.

Encapsulamiento

Page 3: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

ClasesClases Sintaxis:

class NombreClase {//Variables Miembro//Funciones Miembro

}; Ejemplo:

class Punto2D {//Variables Miembro//Funciones Miembro

};

3

Page 4: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

AtributosAtributos La lista de atributos es una secuencia de

declaraciones de variables de cualquier tipo.

Ejemplo:class Vuelo {  //ATRIBUTOS char nombre[30];

 int capacidad;  char origen[8];  char destino[8];  char fecha[8];

};

4

Page 5: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

MétodosMétodos La lista de métodos es una secuencia de

funciones “dentro” de una clase.

Ejemplo:class Vuelo {  //ATRIBUTOS char nombre[30];

 int capacidad;  ...

//MÉTODOS void despegue(void); int aterrizaje(int vel); float cargar(int gas);

};5

Page 6: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

MétodosMétodos La declaración e implementación de los métodos de

una clase es literalmente igual a la definición de una función regular.

Pueden ser in-line Puede ser off-line:

6

class Rectangulo{ private: int ancho; int alto; public: //declaración del método int getArea();};//Implementación del métodoint Rectangulo::getArea(){ return ancho*alto;}

class Rectangulo{ private: int ancho; int alto; public: //declaración y implementación int getArea(){ return ancho*alto; }};

Método off-line. Implica la obligatoriedad del

operador scope ::

Método in-line. No necesita el operador

scope ::

Page 7: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

Constructores y destructoresConstructores y destructores Los constructores y destructores son métodos

especiales de las clases. Usados para inicializar y liberar la memoria de las

clases respectivamente:

7

class NombreClase{ Public: NombreClase(); //Declaración de un constructor ~NombreClase(); //Declaración de un destructor};

Page 8: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

Ejemplo 1Ejemplo 1 Se desea crear la clase complejo, que permita

trabajar con números complejos como si fuesen un tipo de variables más de C++, de modo análogo a int, long, double, etc.

Se deben crear tres ficheros complejo.h, complejo.cpp y main.cpp.

8

Page 9: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

Ejemplo 2Ejemplo 2 Se desea crear la clase rectángulo, que permita

trabajar con sus dimensiones, áreas y perímetros.

Se deben crear tres ficheros rectangulo.h, rectangulo.cpp y main.cpp.

9

Page 10: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

Ejemplo 3Ejemplo 3 Realizar un programa que pueda operar diferentes

figura geométricas: rectángulo, triangulo, circulo.

Se deben crear los ficheros necesarios para cada clase y main.cpp.

10

Page 11: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

Ejemplo 4Ejemplo 4 Realizar un programa que permita gestionar los

estudiantes de informática II.

Se deben crear los ficheros para la clase y main.cpp.

11

Page 12: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

Ejemplo 5Ejemplo 5 Se desea crear la clase cuenta corriente, realizar

transferencias, depósitos, pagos y obtener saldo.

Se deben crear tres ficheros cuenta.h, cuenta.cpp y bancoT.cpp.

12

Page 13: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

EjercicioEjercicio Implementa la siguiente clase para representar un

reloj digital:

13

class CReloj { private: int horas, minutos, segundos; int bateria; public: CReloj(int h, int m, int s, int b); void tic_tac(); void avanza(int h, int m, int s); void atrasa(int h, int m, int s); void recarga_bateria(int b); void escribe_en_12h(); void escribe_en_24h();};

Page 14: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Informática I Universidad de Antioquia

BibliografíaBibliografía

man, ¡no dude en utilizarlo!! Como Programar en C++ - Deithel & Deithel Ed.

PRENTICE HALL Sams Teach Yourself C++ in One Hour a Day, J.

Liberty,S. Rao, B. Jones

http://newdata.box.sk/bx/c/

14

Page 15: Sesión 06: Clases y Objetos (2) 1. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad

15