Upload
andrea-sevilla-paz
View
224
Download
0
Embed Size (px)
Citation preview
1
Informática IISesión 06: Clases y Objetos (2)
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
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
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
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
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 ::
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};
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
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
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
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
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
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();};
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
15