Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web

Introducción a los Objetos y Clases




Definiciones previas
   


Ente y abstracción


Ente : Algo que tiene asociada una simbología para poder describirlo.

Por ejemplo, a través del conjunto de carácteres o palabra "Universo", es posible visualizar o tener una idea de aquel concepto, aunque por naturaleza exista una gran diferencia entre su verdad y realidad.

* La verdad, es lo que finalmente "creemos" del todo que nos rodea, y la realidad "és el todo" que nos rodea.


Ejercicio : Responderse a sí mismo : ¿Como creo yo mi realidad y como la creen mis más cercanos? ¿Hay quién pueda describir mi realidad y sentirla como yo la siento?


Abstracción : Se refiere a la comprensión que se tiene de un ente, en términos de sus características y asociaciones.

* Se puede decir que el "Universo" es un conjunto no determinado de entes relacionados en perfecto equilibrio, o también simplemente que un misterio no resuelto, entre infinitas descripciones posibles. Hay quienes dibujan, hacen poesía, hacen ciencia o bien hacen bien literatura del concepto en cuestión, lo importante es no perder de vista la diferencia entre su realidad y nuestra verdad con respecto a él.

Ejercicio : Pensar y describir el Universo en menos 100 palabras.




Variables y constantes


Variable : Característica de la realidad, la cual tiene un nombre y un valor asociado no constante.

          Los valores asignados se pueden clasificar como alfabéticos, alfanuméricos, numéricos y lógicos.



Ejemplo
:


Variables alfabeticas


nombre : {"Jesus" , "Albert Eistein", "Friedrich Nietzsche", "Johann Sebastian Bach","Enrique VIII", "Luis XIV", ... }

verbo : { "amar" , "pensar" , "imaginar" , "creer" , "negar" , "morir" , "existir", ...}

sustantivo : { "Universo" , "Galaxia" , "Sistema" , "Planeta" , "Humano", ...}

punto Cardinal : {"Este", "Oeste" , "Norte" , "Sur" , "Sureste" , "Noroeste" , ...}

sexo : {"M", "F", "Masculino", "Femenino" }




Variables alfanumericas


direccion : {"Av. Las Condes 3456 / Dept. 45-b / Las Condes / Santiago" , "Pedro Ibañez 345 / Providencia ", ... }

password : {"tp89xd , "gostx" , "atlon34ft" , "fert730fc" , ...}

email : { "MaximilianoOssa@123.cl" , "CatalinaOssandon@msn.com" , "FelipeMontes@hotmail.com", ...}

fecha : {"15/05/1979" , "4-2-67" , "9 de Diciembre, 2003" , "01-01-3000" , ...}



Variables numericas

tiempo : {0 , 0.0000001 , 0.003 , ... , 1000.345 , 1000.346 , ... }

anguloDiscreto = {-360 , -180 , 0 , 180 , 360}

CantidadDeVertices = { 0 , 1 , 2 , ... }

Fuerza = { ... , -14,45 , -5,983 , 0.0 , 6.905 , 256,7 , ... }



Variables lógicas (dos estados)


existe, encendido, enchufado : {verdadero,falso}





Constante : Característica de la realidad, la cual tiene un nombre y un valor asociado no variable.

Ejemplo:

Velocidad de la luz : 2,9979 * 10^8 m/s
Masa del electrón : 9,1096 * 10^-31 kg
Carga del electrón : 1,6022 * 10^-19 C
Constante de Planck : 6,6262 * 10^-34 J*s
PI : 3.141593



Variables estructuradas
 

Son aquellas que dependen o se componen de otras variables.

Ejemplo :

Punto (x,y,z) --> { (3,6,10) , (5,3,0) , (0,0,0) , ... }

Número Complejo (Parte Real, Parte Imaginaria) --> { (0,0) , (0.5 , 0.7) , (8, -4.3) , (-10 , 0.9) }





Característica funcional
 


* Describe lo que hace el objeto o las acciones que puede realizar.


Ejemplo


ente                                 características funcionales  
                                 
globo aeroestático               ascender , descender , avanzar , calentarse
radio                                 encender , apagar , sintonizar
pelota                               inflar , desinflar , obtener presion, patear , dominar
programa computacional       escribir , compilar , ejecutar , guardar , borrar
objeto                               crear, eliminar , clonar 



Objetos



Objeto : Abstracción acotada de un ente en base a sus características, en función de un propósito claro y un punto de vista definido.

* Es dintinto conceptualizar a un ente desde un punto de vista físico, químico o comercial, ya que cada punto de vista pone el énfasis en distintas carácteristicas asociadas con el ámbito correspondiente.




    Ejemplo :
          
             Ente : Calculadora gráfica programable



Caracteristicas de ámbito comercial : codigo , marca , stock , ubicación , precio de costo, precio de lista , rebajar precio de lista , cambiar de ubicación , aumentar stock , vender , comprar , etc.

Características de ámbito funcional: número de teclas , cantidad de memoria , encender , apagar , graficar , operar, transmitir datos , programar , liberar memoria, etc.


Ejercicio : Analizar las características del objeto Video grabador bajo los puntos de vista funcional y de desecho. No olvidar que después de un tiempo, se deja de usar el aparato y hay que buscarle un destino (reciclaje, guardarlo en bodega, botarlo...).



Descomposición de un objeto



Junto con mantener sus características propias, un objeto se puede descomponmer en un conjunto de objetos funcionales, según sea el propósito de tal abstracción.

Por ejemplo para diseñar un auto virtual, se necesita empezar a descomponer el objeto padre en objetos hijos como el motor, ruedas, volante, asientos, etc. A su vez el objeto motor se puede descomponer en los objetos batería, tanque de gasolina, bugías entre otros.

Auto = Motor + Ruedas + Volante + Asientos + Acelerador + Freno + Caja de cambios + ...

Motor = Batería + Tanque de gasolina + Bugías + ...

La descomposición podría llegar en este caso hasta el objeto tornillo o cable, según sea la profundización y detalle del diseño.

Ejercicio : Descomponer los siguientes objetos : Universo, Planeta Tierra , Casa.  




Notación preliminar para describir los objetos


Las caracteristicas funcionales deberán cumplir con las siguentes restricciones de descripción : 


* Incluir como dos últimos carácteres a los símbolos ()

           Ejemplo : encender() , apagar() , ascender() , ...



* No dejar espacios si el nombre de la característica es compuesto.

Para esto existen las siguientes soluciones.

a) Las palabras siguientes deben comenzar con mayúscula
b) Usar el separador _

          forma incorrecta            forma correcta  
                      
          subir volumen()              subirVolumen() , subir_volumen()
          obtener presion()            obtenerPresion() , obtener_presion()



* No pueden contener acentos

          forma incorrecta             forma correcta  
                       
          obtenerPresión()             obtenerPresion()
          asignar_número()            asignar_numero()



* Empezar el nombre con minúscula

           forma incorrecta             forma correcta  
                     
           Vender()                        vender()
           AumentarStock()             aumentarStock()



Las características no funcionales o bien llamados atributos , siguen las mismas restricciones (preliminarmente), pero no llevan los símbolos ().

Ejemplo : velocidad , x , a , presion , primerNombre , numeroDeVentanas , ...



Clases y Herencia


En este punto de definición, se incluye los siguientes conceptos de formalización :

* A las características propias se les llamará atributos y a las características funcionales se les llamará métodos.

Clase

Con respecto a la formalización del concepto Clase, ésta es una definición formal de un conjunto de atributos y métodos asociados a la abstracción de un ente.


Ejemplo
 

Diagrama de Clase Guitarra


Ejercicio
: Definir con el esquema anterior, a la clase Auto desde un punto de vista funcional.




Herencia


La herencia es una metodología de clases, para que una clase hija pueda heredar las características (propiedades y métodos) de su clase padre.


Ejemplo :

Pondremos nuestra atención sobre la abstracción funcional del objeto Guitarra.

Todas las guitarras, ya sean Eléctricas, ElectroAcústicas o normales, cumplen con características similares como número de cuerdas (6) , método de afinación, cambio de tono, cambio de postura y rasgueo entre otras.

Si no se siguiera con una metodología de herencia, por cada clase (Guitarra Electrica y ElectroAcústica) se tendría que repetir la definición de todos los atributos y métodos que pertenecen a la clase padre Guitarra, que corresponde a la abstracción más amplia del concepto "Guitarra".

Modelo Independiente sin herencia

      Clase : Guitarra 

      - afinar()                     * numeroDeCuerdas
      - pulsarCuerda()           * tono
      - rasguear() 
      - cambiarTono()
      - cambiarPostura()



       Clase : GuitarraElectrica 

      - afinar()                     * numeroDeCuerdas
      - pulsarCuerda()           * tono
      - rasguear()                 * numeroDeCapsulas
      - cambiarTono()            * volumen
      - microAfinar()            * bajo
      - conectarCable()        * agudo
      - amplificar()

     
      Clase : GuitarraElectroAcustica

      - afinar()                     * numeroDeCuerdas
      - pulsarCuerda()           * tono
      - rasguear()                 * nivelDeVolumen
      - cambiarTono()
      - conectarCable()        
      - amplificar()


Mediante el uso de la herencia, se puede definir una clase "Guitarra" que cumpla con todas las características generales del concepto guitarra y sus evoluciones, con el fin de acotar el número de especificaciones de las clases "GuitarraElectrica" y "ElectroAcústica", y permitir la herencia a éstas últimas clases con las características del objeto padre.     


Modelo dependiente con herencia

Diagrama de Clase Guitarra



Ejercicio resuelto


Modelar usando herencia y determinar clase padre, con las siguientes clases :

              * Ser Humano
              * Ser Animal
              * Ser Vegetal

* usar abstracción a libre elección.


Solución