Sei sulla pagina 1di 10

Sesin 6 Unidad II Clases y funciones miembro

Objetivo

El alumno identificar las partes que conforman a una clase y a un objeto y como se lleva a cabo su construccin.

Contenido

Figura 1. Mapa de la Sesin 6.

Programacin Orientada a Objetos

Leccin 6.0 Clases y funciones miembro


Cuando se escribe un programa en un lenguaje orientado a objetos, definimos una plantilla o clase que describe las caractersticas y el comportamiento de un conjunto de objetos similares. La clase automvil describe las caractersticas comunes de todos los automviles: sus atributos y su comportamiento. Los atributos o propiedades se refieren a la marca o fabricante, el color, las dimensiones, si tienen dos, tres, cuatro o ms puertas, la potencia, si utiliza como combustible la gasolina.

El comportamiento se refiere a la posibilidad de desplazarse por una carretera, frenar, acelerar, cambiar de marcha, girar.

Luego, tenemos automviles concretos, por ejemplo el automvil propio de una determinada marca, color, potencia, el automvil del vecino de otra marca, de otro color, el automvil de un amigo.

Una clase es por tanto una plantilla implementada en software que describe un conjunto de objetos con atributos y comportamiento similares. Una instancia u objeto de una clase es una representacin concreta y especfica de una clase y que reside en la memoria de la computadora.

Una clase es una herramienta para asociar conjuntamente los datos y las funciones asociadas a los mismos. Permite ocultar datos (y las funciones) para evitar su uso externo, si es necesario. Al definir una clase, estamos creando un nuevo tipo abstracto de datos, que puede tratarse como cualquier tipo de datos predefinido.

2|P gin a

Programacin Orientada a Objetos

Generalmente, la especificacin de una clase tiene dos partes:

1. Declaracin de la clase. 2. Definiciones de las funciones de la clase.

La declaracin de la clase describe el tipo y mbito de sus miembros. Las definiciones de las funciones de la clase describen cmo se implementan las funciones de la clase. El formato general de una declaracin de clase es:

class nombre_clase { prvate: declaracin de variables; declaracin de funciones; public: declaracin de variables; declaracin de funciones; };

La funcin class es similar a una declaracin struct. La palabra reservada class especifica que lo que sigue es un dato abstracto de tipo nombre_clase. El cuerpo de una clase va entre llaves, y termina con punto y coma. El cuerpo de la clase contiene la declaracin de variables y funciones. Estas funciones y variables se denominan colectivamente miembros de la clase. Generalmente se agrupan en dos secciones, llamadas prvate y public, para distinguir cules de los miembros son privados y cules son pblicos.

3|P gin a

Programacin Orientada a Objetos

Las palabras reservadas prvate y public se denominan tambin etiquetas de visibilidad. Observe que estas palabras reservadas van seguidas de dos puntos.

Los miembros de la clase que han sido declarados como privados slo sern accesibles desde dentro de la clase. Por otra parte, los miembros pblicos tambin sern accesibles desde fuera de la clase. La ocultacin de datos (usando declaraciones privadas) es la caracterstica clave de la programacin orientada a objetos.

El uso de la palabra reservada prvate es opcional. Por defecto, los miembros de una clase son privados. Si no se incluye ninguna etiqueta, entonces todos los miembros de la clase sern privados. Una clase como sta queda totalmente oculta frente al mundo exterior, y no tiene sentido.

Las variables declaradas dentro de la clase se denominan miembros de datos, y las funciones se denominan funciones miembro.

Las funciones miembro son las nicas que pueden acceder a los miembros de datos privados y funciones miembro privadas. Sin embargo, los miembros pblicos (tanto funciones como datos) son accesibles desde fuera de la clase.

La Figura 2 ilustra este hecho. La agrupacin de datos y funciones en una nica variable de tipo clase se conoce como encapsulacin.

4|P gin a

Programacin Orientada a Objetos

CLASE
Entrada prohibida al rea privada

rea privada X Datos Funciones

rea pblica
Entrada permitida al rea pblica

Datos Funciones

Figura 2. Ocultacin de datos en las clases.

5|P gin a

Programacin Orientada a Objetos

Leccin 6.1 Construccin de clases y objetos

Como ya se menciono, las clases se definen en C++ mediante una construccin class dividida en dos partes: una parte privada (private) que contiene algunos detalles de la implementacin, y una parte pblica (public) que contiene todo el interfaz.

class NombreClase { private: // implementacin de la clase // solamente los atributos public: // interfaz de la clase };

En la parte privada de la construccin class aparecen slo los atributos de la clase y algunos tipos intermedios que puedan ser necesarios. En C++, la implementacin de los mtodos de la clase se facilita aparte. En la parte pblica, suelen aparecer

6|P gin a

Programacin Orientada a Objetos

solamente las declaraciones (cabeceras) de los mtodos de la clase. Por ejemplo, la siguiente es una definicin de la clase CComplejo que representa nmeros complejos:

class CComplejo { private: // atributos double real, imag; // los metodos se implementan aparte public: void asigna_real(double r); void asigna_imag(double i); double parte_real(); double parte_imag(); void suma(const CComplejo& a, const CComplejo& b); };

7|P gin a

Programacin Orientada a Objetos

Los campos real e imag son los atributos de la clase y codifican el estado de un objeto de la clase CComplejo. Puesto que los atributos estn declarados en la parte privada de la clase, forman parte de la implementacin y no es posible acceder a ellos desde fuera de la clase. Su acceso est restringido: slo se puede acceder a ellos en la implementacin de los mtodos de la clase. Los mtodos que aparecen en la parte pblica forman el interfaz de la clase y describen su comportamiento; es decir, las operaciones que podemos aplicar a un objeto del tipo CComplejo. En particular, con estos mtodos podemos asignar valores a las partes real e imaginaria, leer las partes real e imaginaria, y sumar dos nmeros complejos. Una vez declarada una clase, podemos crear variables de dicho tipo usando el nombre de la clase (como cualquier otra variable definida sobre un tipo predefinido). Por ejemplo, de:

Figura 3. Representacin de una clase.

8|P gin a

Programacin Orientada a Objetos

Tomamos

artculo x; //crea memoria para x

crea una variable x de tipo x. En C++, las variables de clase se denominan objetos. Por tanto decimos que x es un objeto de tipo x. Tambin podemos declarar ms de un objeto en una sentencia. Por ejemplo:

artculo x,y,z;

La declaracin de un objeto es similar a la de una variable de cualquier tipo bsico. En esta etapa, se reserva el espacio de memoria necesario para un objeto. Debemos tener presente que la especificacin de una clase, como en una estructura, slo proporciona una plantilla, y no crea ningn espacio de memoria para los objetos. Tambin podemos crear objetos al definir una clase, situando sus nombres inmediatamente despus de la llave de cierre, como en el caso de las estructuras.

Es decir, la definicin

class artculo

9|P gin a

Programacin Orientada a Objetos

{ ..... ..... ..... } x,y,z;

Creara los objetos x,y y z de tipo artculo. Este mtodo no se usa con frecuencia, ya que normalmente se desea trabajar los objetos cerca del lugar en el que se usan, y no en el momento de la definicin de clase.

Bibliografa
1. http://www.sc.ehu.es/ 2. Programacin orientada a objetos con C++, Balagurusamy E., 3 edicin. Mc Graw Hill.

10 | P g i n a

Potrebbero piacerti anche