Вы находитесь на странице: 1из 11

INSTITUTO TECNOLOGICO IZTAPALAPA II

BUENDIA CUAUTLE MARIO ISAAC

ING. MICHEL LOPEZ CELAYA

FUNDAMENTOS DE PROGRAMACION

1 B

13/12/10

UNIDAD V IMPLEMENTACIN POO


Las clases
de datos, Cada clase es un nuevo tipo, Cada elemento de la clase se caracteriza por ciertos valores y las operaciones disponibles para crear dichos elementos, modificarlos y destruirlos. Podemos establecer un paralelismo entre los tipos de datos vistos hasta el momento (int, char, arrays, estructuras,) y las clases:
El tipo int est definido por el lenguaje y las operaciones que pueden realizarse estn completamente determinadas. Podemos declararnos elementos de la clase CL, en ste caso los llamaremos Las clases C++ permiten definir nuevos tipos objetos o instancias de la clase CL.

Con todo lo dicho, la declaracin de la parte pblica de la clase, quedara como sigue: class Pila { public: Pila (void); // Constructor por defecto bool Apilar (Valor); bool Desapilar (void); bool CimaPila (Valor &); bool PilaVacia (void); private: .??. }; Una vez llegados a este punto, ya podemos utilizar, como usuarios, la clase Pila. De hecho, ya en la parte del TAD podamos plantearnos la utilizacin de la pilas mediante las operaciones descritas. A continuacin veremos algunos ejemplos de utilizacin de pilas, con una primera aproximacin a la solucin en pseudocdigo y una solucin en C++.

class SubirFiles { public public public public public public public $ruta_destino = "../cevit/archivos/"; $nombre; $nombreTemp; $tamanio; $tipo; $nombre_final; function CreaDir (){ if ( !is_dir ($this->ruta_destino)){ mkdir ($this->ruta_destino, '0777'); } }

public function renombrar (){ $this->nombre_final = $_FILES['fichero']['name']; $this->nombre_final= ereg_replace (" ", "_", trim ($this->nombre_final)); return } $this->nombre_final;

public function Subir(){

$this->tamanio = $_FILES['fichero']['size']; $this->tipo = $_FILES['fichero']['type']; $this->nombre = $_POST ['nombre_archivo']; $this->nombreTemp = $_FILES['fichero']['tmp_name']; if(move_uploaded_file($this->nombreTemp, $this->ruta_destino. $this->nombre_final)) { echo "<b>Upload exitoso!. Datos:</b><br>"; echo "Nombre: <i><a href=\"".$this->ruta_destino. $this>nombre_final."\">".$this->nombre."</a></i><br>"; echo "Tipo MIME: <i>".$this->tipo."</i><br>"; echo "Peso: <i>".$this->tamanio." bytes</i><br>"; echo "<br><hr><br>"; } }

} //comienzo a instaciar $a = new SubirFiles (); $a->CreaDir(); $a->renombrar (); $a->Subir(); ?>

CLASES El tipo Struct


Hemos visto anteriormente cmo implementar un tipo de dato Cliente por medio de una estructura, y unas operaciones para manejarla:
struct cliente cliente

char nombre[30]; char calle[30]; double importe_factura; char tlf[20] ; int edad;

Las clases
2. Pueden declararse elementos de ese tipo Pdeme )s declararnos elementos int, es Podemos declararnos elementos de la clase CL, en ste caso los llamaremos objetos o de tipo lo que llamamos variables. instancias de la clase CL.

Esto implica que podemos tener muchos objetos de una misma clase, igual que
podamos definir muchas variables de un tipo. Pero una clase no es tan simple como un tipo de datos
{

Una clase es un conjunto de datos y un conjunto de operaciones, que como hemos No existe una relacin explcita entre dicho, deben ir unidas.
las funciones y los datos con los que se trabaja

Datos
} ;

Operaciones

cliente c; void visualizar_datos_cliente ( cliente c ); void modificar_edad ( cliente & c ); void hacer_descuento ( cliente & c, double 0,5 );

Clases y miembros
La estructura anterior proporciona un conjunto de operaciones adecuadas sobre el tipo Cliente, pero no se especifica que esas funciones deban ser las nicas que accedan a los datos del tpo.

Un tipo

struct

no evita que se acceda al dato edad y se actualice a 200.

Para que los MIEMBROS, sean privados, utilizamos la palabra

class

en lugar de

struct.

class Cliente { char nombre[30]; char calle[30]; double importe_factura; char telefono[20] ; int edad; void visualizar_datos_cliente ( ); void modificar_edad ( ); void hacer_descuento (double); }; cliente c; cliente c; void visualizar_datos_cliente ( cliente c ); void modificar_edad ( cliente & c );

Clases y miembros
void hacer_descuento (double ); }; class Cliente { char nombre[30]; char calle[30]; double importe_factura; char telefono[20] ; int edad; public: void visualizar_datos_cliente ( ); void modificar_edad ( ); cliente c;

El identificador separa la clase en dos partes:


public

parte pblica: donde declaramos las funciones de la clase.

parte privada: donde hemos declarado los datos de la clase.

Solo podemos acceder a los miembros privados a travs de las funciones pblicas.

public: Especificador de acceso

CLASES Diferencias entre class y struct


En una clase los miembros son privados por defecto, mientras que en una estructura los miembros son pblicos por defecto.
class, struct,

class Cliente { char nombre[30]; char calle[30]; double importe_factura; char telefono[20] ; int edad; public: void visualizar_datos_cliente ( ); void modificar_edad ( ); void hacer_descuento ( double ); };

Con sta definicin del tipo Cliente, se puede

Caractersticas fundamentales de las clases en C++


Nombre de la clase. Sirve para identificar a todos los objetos que tengan unas determinadas caractersticas. Conjunto de atributos. Datos miembro. El valor de los atributos representan el estado de cada objeto. Conjunto de mtodos. Funciones miembro. Permite que los objetos cambien de estado, dependiendo del estado anterior que tuviera el objeto. Niveles de acceso para proteger ciertos miembros de la clase. Normalmente, se definirn como ocultos (privados) los atributos y visibles (pblicos) los mtodos.

Uso y manipulacin de objetos: paso de mensajes


Una vez creados los objetos, podemos trabajar con ellos. Si queremos que un determinado objeto ejecute un mtodo, utilizamos el operador punto () . A esto se le conoce como paso de mensajes.
9

Los objetos se manipulan mediante el paso de mensajes . - Cada paso de mensaje provoca la ejecucin del correspondiente mtodo definido en la clase del objeto receptor. Cada objeto entiende tantos mensajes como mtodos estn definidos en su clase. Se pasa el mensaje inicializar al objeto c1
void Circulo:: inicializar ( float a, float b, float r) { coor_x = a; coor_y = b; radio = r;

Los objetos c l , c2 tienen valores diferentes, tienen distinto estado.

Circulo c1, c2, c3;


c1.inicializar (1, 2, 4); c2.inicializar (0,0,5);

Pblico y privado
Los atributos deben ser privados. Los mtodos o funciones miembro deben ser pblicas.

10

Resumen:
Las instancias de un tipo cualquiera se denominan variables, mientras que las instancias de una clase se denominan objetos. Los atributos describen el estado de un objeto. Un atributo consta de dos partes: nombre del atributo y valor. Los mtodos describen el comportamiento de los objetos de una clase. Nombre de la clase. Sirve para identificar a todos los objetos que tengan unas determinadas caractersticas. Conjunto de atributos. Datos miembro. El valor de los atributos representan el estado de cada objeto. Conjunto de mtodos. Funciones miembro. Permite que los objetos cambien de estado, dependiendo del estado anterior que tuviera el objeto. Niveles de acceso para proteger ciertos miembros de la clase. Normalmente, se definirn como ocultos (privados) los atributos y visibles (pblicos) los mtodos. Representan las operaciones que se pueden realizar con los objetos de la clase. La ejecucin de un mtodo puede conducir a cambiar el estado del objeto. Los objetos se manipulan mediante el paso de mensajes. Para ejecutar un mtodo asociado a un objeto, se realiza una accin que se conoce como "envo de mensajes". Las operaciones y valores visibles desde el exterior de la clase, es lo que se denomina "Interfaz" de la clase.

BIBLIOGRAFIA:

http://www.gratisprogramas.org/descargar/50-libros-de-programacion/ http://www.gratisprogramas.org/descargar/50-libros-de-programacion/

11

Вам также может понравиться