Professional Documents
Culture Documents
Juniel Almeida
Inicio
ticketLugania.Precio() telefonoBodega.Comunica()
ticketLugania.Inserta(5 c)
cabo la accin indicada. En respuesta a un mensaje, el receptor ejecutar algn mtodo 2 para satisfacer la peticin . Es bueno recordar la importancia de seleccionar un receptor adecuado para que pueda interpretar correctamente nuestro mensaje. En el ejemplo anterior si hubiese seleccionado a una mquina expendedora de refrescos para que me imprimiera un ticket estara cometiendo un error pues puede ser que la misma no tenga un mtodo para resolver el problema. Por lo que otra pieza elemental dentro de la POO son los receptores, a los cuales llamaremos Objetos. TRMINO Objeto. Entidad que tiene una estructura de datos interna bien definida, el cual tendr la capacidad de realizar un conjunto de acciones que describen su comportamiento, como respuesta a un mensaje determinado.
Objeto
= Datos + Acciones
Para el caso que estamos estudiando, el objeto con el cual interactuamos -mquina ticketLugania- cuenta con un conjunto de acciones que es capaz de realizar, pero Cules seran los datos que segn el concepto tiene nuestro objeto? Si volvemos a la situacin nos daremos cuenta de que hay informacin que la mquina debe memorizar para lograr un correcto funcionamiento. En primer lugar tenemos el precio del ticket sin el cual no se podra poner en funcionamiento nuestra mquina. Y en segundo lugar, no por ello menos importante, el balance y la cantidad total recaudada por la mquina que aunque no impiden su funcionamiento son opciones de informacin con que cuenta.
Pero no solo la mquina de ticket con destino Lugania tiene la capacidad de realizar estas acciones y memorizar esta informacin. Cualquier otra mquina de ticket de nuestra Terminal tiene esa capacidad sin importar su destino, por lo que no parece descabellado decir que todas ellas pertenecen a una misma clase de objetos, la clase Mquina de tickets.
Precisamente este es uno de los principios ms importantes dentro de la Programacin Orientada a Objetos:
Todos los objetos pertenecen a una clase en especfico, pero Qu son las clases?
Lo ms importante es la consideracin de que los objetos pueden ser agrupados segn sus caractersticas. Esta idea viene de la vida cotidiana. En la prctica los seres humanos pensamos de esta manera: el mundo que nos rodea est formado por objetos relacionados entre s segn determinados criterios. A estas agrupaciones de objetos se les denomina clases.
TRMINO
Clase. Descripcin de objetos con caractersticas comunes, tienen un conjunto de atributos para definir los datos que sern guardados por el objeto y un conjunto de mtodos que precisan las acciones que este puede realizar.
Clase =
Atributos + Mtodos
Pero no veamos las clases como una mera forma de agrupar aquellos objetos que tienen caractersticas comunes, sino como el recurso que brinda la POO para crear objetos o instancias con caractersticas comunes. Es decir que para nuestro caso de estudio necesariamente debe existir una clase mquina de ticket -que describa los atributos de cada objeto y sus mtodos- a partir de la cual se puedan crear todas las instancias necesarias para ser utilizadas en la Terminal. Esto garantiza que tanto la mquina ticketLugania como ticketBaltica al ser instancias de la clase mquina de ticket tengan como atributos su precio, balance y total recaudado. Adems garantiza que ambas respondan de manera adecuada ante un mismo mensaje. Instancia ticketLugania ticketBaltica Mensaje ticketLugania.Precio() ticketBaltica.Precio() Respuesta 0.20 1.00
Todos los objetos de una clase tienen la misma funcionalidad, o sea, responden de la misma manera ante los mismos mensajes.
TRMINO
Atributo. Pequea porcin de memoria dentro del objeto que es utilizada para almacenar valores cuyo rango y caractersticas estn perfectamente definidas en la clase.
TRMINO
Mtodo. Bloque de operaciones presentes en las clases para darle funcionalidad. Su ejecucin ocurre como respuesta de un objeto ante un mensaje determinado.
De la definicin anterior podemos deducir que un objeto solamente puede responder adecuadamente a un mensaje si en la clase a la que pertenece est presente el mtodo adecuado para darle respuesta, y a su vez este solamente se ejecuta si una instancia de la clase lo solicita a travs de un mensaje. Ejemplo: ticketLugania.Precio() Antes de pasar al siguiente punto podemos resumir que un programa OO es una secuencia de mensajes entre objetos para la solucin de un problema donde uno de ellos puede ser un cliente (que solicita una accin) y otro un servidor (que brinda el resultado), en dependencia de cmo estn definidos sus comportamientos en las clases a las que pertenecen.
Mensaje
Objetos
Notacin UML para describir clases y objetos. De forma general representaremos las clases de la siguiente forma: Nombre de la clase Atributos ... Mtodos ... y a los objetos como: Nombre del objeto : Clase Atributo = valor ...
Vale aclarar algunas reglas de notacin iniciales: Para tener una adecuada organizacin, los nombres de las clases siempre deben comenzar con maysculas y antecedidos con la letra C, si el nombre de una clase contiene ms de una palabra debern ir unidas y cada una debe comenzar con maysculas. Ejemplos de nombres de clases: CPersona, CFiguraGeometrica, CVehiculoAutomotor, etc.. Los nombres de los objetos sern siempre en minsculas y estarn subrayados. Los nombres de los atributos comenzarn con minsculas, si tienen ms de una palabra las restantes deben comenzar con maysculas, todas las palabras irn unidas.
Los nombres de los mtodos seguirn la misma regla que los nombres de clases sin anteponerles la C al principio. Utilicemos entonces la notacin UML para representar la clase y los objetos del caso de estudio. CLASE CMaquinaTicket OBJETO ticketLugania: CMaquinaTicket OBJETO ticketBaltica: CMaquinaTicket
Como pueden apreciar la principal diferencia entre dos objetos de una misma clase est en la informacin que almacenan sus atributos, puesto que ambos tienen la capacidad de responder al mismo conjunto de mensajes al estar esta determinada por los mtodos de la clase a la que pertenecen. No obstante el hecho de que dos objetos de una misma clase en un momento dado tengan los mismos valores en sus atributos, no quiere decir que estos dos objetos sean el mismo, puesto que independientemente de ello cada uno tiene su identidad nica. Este fenmeno es muy comn en la vida real por ejemplo: Puede darse el caso que existan dos mquinas de tickets de un mismo destino que en un momento determinado tengan igual balance y total recaudado, lo cual no quiere decir que sean la misma mquina. La orientacin a objetos no es solo clases, objetos y mensajes, tambin considera otros aspectos como la abstraccin, la herencia, el polimorfismo y el encapsulamiento,
TRMINO
Abstraccin. Descripcin de las especificaciones de un sistema haciendo nfasis en los detalles que son significantes para el programador o para el usuario y obviando aquellas que no lo son.
TRMINO
Encapsulamiento. Se refiere a ocultar qu hay dentro del objeto, de no mostrar cmo se llevan a cabo las acciones.
La forma de graficar las clases que vimos anteriormente no es la manera precisa de representarlas en el dominio de cualquier lenguaje de programacin.
Presentemos a continuacin la manera correcta de definir las clases en C++. Para ello utilizaremos la sintaxis siguiente:
Atributos Mtodos
Aclaremos algunos detalles en la siguiente declaracin que sern vlidos para las posteriores sintaxis de instrucciones que veremos ms adelante y que seguiremos ampliando segn haga falta. 1. < > Encerraremos entre ellas aquella parte de la sintaxis cuya escritura es obligatoria. 2. // Son las llamadas lneas de comentario. Son utilizadas para ayudar al lector a la comprensin de un cdigo. 3. [ ] Lo utilizamos para precisar la parte de la instruccin que es opcional
Ejemplo:
TRMINO
Variables. Son zonas de memoria que pueden cambiar de valor durante la ejecucin del programa por medio de una asignacin y que se acceden mediante identificadores. En nuestro caso los atributos son igualmente variables lo que las nombramos de esta manera por encontrarse estas dentro de una clase.
Analicemos por partes la sintaxis general de una declaracin de variables o Tipos de Datos
<tipo> Los tipos de datos determinan la naturaleza del conjunto de valores que puede tomar una variable y las operaciones que se pueden realizar con ellas. Las variables en C++ pueden declararse prcticamente en cualquier parte del programa, aunque se aconseja hacerla al inicio de cada bloque de instrucciones. C++ ofrece un conjunto de tipos de datos bsicos que pueden cambiar su rango utilizando los modificadores: unsigned (sin signo), signed (con signo), long, short. Tipo de dato int, long float double char short int long double 3 string Valores que almacena enteros reales reales caracteres enteros reales cadena Rango -2,147,483,648 <= X <= 2,147,483,647 1.18 10^-38 < |X| < 3.40 10^38 2.23 10^-308 < |X| < 1.79 10^308 -128 <= X <= 127 -32,768 <= X <= 32,767 3.37 10^-4932 < |X| < 1.18 10^4932 --
El modificador signed y unsigned se utilizan en los tipos de datos numricos para especificar si tienen signo o no. Un dato de tipo numrico unsigned duplica su rango ejemplo: Tipo short int unsigned 0 <= X <= 65,534 signed -32,768 <= X <= 32,767
<identificador> Secuencia de caracteres que sirve para identificar una posicin en la memoria de la computadora, que nos permite acceder a su contenido. Los identificadores representan los datos de un programa (constantes, variables, tipos de datos, nombres de funciones o mtodos, nombres de archivos). Reglas para formar un identificador - Un identificador se forma con una secuencia de caracteres (minsculas de la a a la z; maysculas de la A a la Z; dgitos del 0 al 9 y el carcter subrayado o underscore (_)). - Un identificador no puede contener espacios en blanco, ni otros caracteres distintos de los citados, como por ejemplo (#, $, %, *, &, etc.).
3
- El primer caracter de un identificador debe ser siempre una letra o un (_), es decir, no puede ser un dgito. - Se hace distincin entre letras maysculas y minsculas. As, Masa es considerado como un identificador distinto de masa y de MASA. - La longitud puede ser hasta de 31 caracteres. Existen palabras que tienen un significado predefinido en el lenguaje, son las llamadas palabras reservadas y no pueden ser utilizadas como identificadores. Ejemplo: class, private, public, void, int, float, char, bool, long, short, unsigned, signed, break, continues, if, else, for, while, do, const, return. Los identificadores deben no solo ser vlidos sino que deben autodocumentar su programa, es decir, tener nombres que permitan conocer a simple vista qu representan, utilizando para ello tantos caracteres como sean necesarios. Esto simplifica enormemente la tarea de programacin y sobre todo de correccin y mantenimiento de los programas. Es cierto que los nombres largos son ms laboriosos de teclear, pero en general resulta rentable tomarse esa pequea molestia. Ejemplos de identificadores vlidos: SumaTotal Max max valor1 valor_1 Esta_es_una_variable _identificador [, identificador, ] Esta parte de la declaracin indica que se pueden declarar otras variables del mismo tipo separando los identificadores de ellas por comas. Ejemplo de declaraciones correctas de variables Declaracin Objetivo de la Declaracin Guardar en la variable sexo la letra F o M Guardar un valor entero probablemente no superior a 150 para el caso de la edad Guardar un valor decimal con una precisin baja Identificadores no vlidos: Suma Total 1_variable VariableNoVlida x+y cantidad_en_$ %total int
Ejemplo de declaraciones incorrectas de variables Declaracin Objetivo de la Declaracin Guardar en la variable el nombre char nombre de una persona Guardar una letra float edad Guardar un valor decimal con una precisin baja
Motivo del Error El tipo char slo admite una letra Este tipo es utilizado para valores reales y el identificador no guarda relacin con la informacin que guarda Slo almacena valores enteros y mal uso del identificador
10