ART: Programación Orientada a Objetos con Escenario del Mundo Real


Normalmente se hacen consultas sobre escenarios reales para explicar la Programación Orientada a Objetos y en muchas ocasiones no se encuentran respuestas. Esta es la razón por la que escribo este artículo. Este artículo es de principal interés para todos quienes conociendo los conceptos teóricos de la Programación Orientada a Objetos(POO) pero no son capaces de vincular el mundo real con el mundo de la programación.

La Programación Orientada a Objetos es básicamente considerado como una metodología de diseño para la creación de una aplicación que no es rígida.

En POO toda lógica está escrita para hacer nuestro trabajo, pero esto esta hecho basado en entidades el cual lo denominamos como objetos. La POO nos permite descomponer nuestro problema en pequeñas unidades de trabajo los cuales son accedidos por los objetos. Construimos funciones dentro de estos objetos. Existen cuatro pilares(características) principales de la POO.
  • Abstracción
  • Encapsulación
  • Herencia
  • Polimorfismo
Si todas estas características se cumplen en nuestra programación, entonces podemos decir que estamos perfectamente aplicando la Programación Orientada a Objetos. 
Vamos a considerar un ejemplo para explicar cada pilar, el mismo que al final hará que entiendas y sigas la Programación Orientada a Objetos. Antes necesitamos conocer algunas cosas.
Cuando tomamos un Mobile(Teléfono Celular) como un objeto, su funcionalidad básica para la cual fue inventada es llamar y recibir una llamada y mensaje. Pero ahora miles de característica y modelos han sido agregados y la cuenta todavia se incrementa.

En el siguiente diagrama, cada marca(Samsung, Nokia, IPhone) tienen sus propias lista de características con funcionalidades básicas de marcar y recibir una llamada y un mensaje.

Cuando hablamos de la POO, como la palabra indica este hablaría acerca de un objeto(Objeto del mundo real).

Objeto

Cualquier entidad del mundo real que puede tener algunas característica o puede realizar algunos trabajos es llamado como Objeto. Un objeto es también llamado como una instancia es decir una copia de la entidad en el lenguaje de programación. Si consideramos el ejemplo de arriba, una compañía de fabricación de mobiles, fabrica lotes de cada modelo que en realidad son instancias. Estos objetos son diferenciados unos de otros a través de una identidad u otra característica a esto se le dá un nombre único.

Mobile mbl1=new Mobile();
Mobile mbl2=new Mobile();


Clase

Una clase es un plantilla, el mismo que describe a un objeto. Lo llamamos como un proyecto original de cómo los objetos deberían ser representados. Principalmente una Clase debería consistir de un nombre, atributo y métodos. Considerando el ejemplo de arriba, un Mobile puede ser una clase la misma que tiene atributos como Tipo de Perfil, Número, Procesador, etc. Y operaciones como marcar, recibirMensaje y enviarMensaje. 

Existen algunos principios de la POO que necesitan ser mirados mientras se crean cualquier clase. Este principio es llamado como SOLID, donde cada letra tiene alguna especificación. No voy a profundizar mucho en esto, en una sola línea aclararemos algunos puntos.

SRP(the Single Responsability Principle).-
Una Clase debería tener solo una responsabilidad.
OCP(The Open Closed Principle).-
Se debería ser capaz de extender el comportamiento de una clase, sin modificar este(herencia).
LSP(The Liskov Substitution Principle).-
Las clases derivadas deben ser sustituibles en sus clases bases(Polimorfismo).
ISP(The Interface Segregation Principle).-
Hacer una interfaz bien específica en lugar de una interfaz enorme. Los que implementan la interfaz no pueden ser obligados a implementar una interfaz que no utiliza.
DIP(The Dependency Inversion Principle).-
Dependerá de las abstracciones y no de la concreciones(Abstracción).
Ahora esta clase es representada como sigue.




Abstracción
La abstracción dice, solo mostrar detalles relevantes y el resto ocultarlos. Este es el pilar más importante de la POO ya que nos esta proporcionando las técnicas para ocultar los detalles irrelevantes del usuario. Si se considera un ejemplo de cualquier Mobile como Nokia, Samsung o IPhone.

Alguna características de los Mobiles.
  • Marcar un numero, llama a otros métodos internamente el cual concatena los numeros y muestra en la pantalla, pero todo lo que esta haciendo nosotros no lo conocemos.
  • Haciendo click en el botón verde enviando la señal para llamar el Mobile de la persona pero no nos damos cuenta de como lo esta haciendo.
Esto es llamado abstracción en donde crea métodos que toman algunos parametros y retornan algun resultado despues de alguna logica de ejecución sin conocer lo que esta escrito en el método.



Encapsulación

La encapsulación es definido como el proceso de encerrar uno o más detalles de la clase del mundo exterior a través de derechos de acceso. Dice cuanto acceso se debe dar a los detalles particulares. Ambos abstracción y encapsulación trabajan de la mano porque la abstracción dice que detalles serán hechos visible y la encapsulación provee el nivel de derecho de acceso adecuado del detalle, es decir este implementa el nivel deseado de la abstracción.
hablando acerca de Bluetooth es cual usualmente tienen nuestros mobile. Cuando lo encendemos somos capaces de conectar a otro mobile, pero no somos capaces de acceder a otras características del otro mobile como marcar un número, acceder al bandeja de correo,etc. Esto se debe,a que la función de Bluetooth se da un cierto nivel de abstracción.
Otro punto es cuando el mobile A se conecta con el mobile B a través de Bluetooth mientras en mobile B ya esta conectado al mobile C, entonces el mobile A no puede conectarse a través del mobile B y C. Esto es porque existe una restricción de accesibilidad. Esto es manejado por el especificador de acceso como public, private, protected y internal.



Polimorfismo

El polimorfismo puede ser definido como la capacidad de hacer la misma operación pero con diferentes tipos de entradas. Más precisamente lo decimos como “muchas forma de una sola entidad”. esto juega un rol vital en el concepto de la POO.
Vamos a decir el Mobile Samsung tiene 5MP de camara disponible, es decir este tiene una funcionalidad CameraClick(). Ahora mismo el mobile tiene modo Panorama disponible en la camara, esta funcionalidad debería ser el mismo con modo. Este tipo se dice que es polimorfismo estático o polimorfismo en tiempo de ejecución. Ver el siguiente ejemplo.



El polimorfismo en tiempo de compilación el compilador conoce cuál método sobrecargado es el que va a llamar.
El compilador verifica el tipo y número de parámetros pasados al método y decide cuál método llamar y este dará un error si no hay métodos que coincidan con la firma del método y del método que es llamado en tiempo de ejecución.
Otro punto en el que en EnviarMensaje tenia la intención de enviar un mensaje a una sola persona a la vez, pero supongamos que Nokia habría dado provisión para enviar mensajes a la vez a un grupo, es decir redefiniendo la funcionalidad para enviar mensaje a un grupo. Este tipo se llama polimorfismo dinámico o polimorfismo en tiempo de ejecución.

Para sobreescribir necesitamos asignar el método a sobreescribir como virtual y su nueva aplicación debe ser decorado con la palabra clave override. 




Herencia

Capacidad de extender la funcionalidad de la entidad base en una nueva entidad que pertenece al mismo grupo. Esto nos ayudará a reusar la funcionalidad el cual es definido con anticipación.
Considerando el ejemplo de arriba el mismo que muestra que es herencia. La funcionalidad básica del Mobile es enviar mensaje, marcar y recibir llamada. Así que las marcas de mobiles es el uso de esta funcionalidad básica mediante la ampliación de la funcionalidad de la clase Mobile y añadiendo sus propias características nuevas a sus respectivas marcas.

Hay 4 principales tipos de herencia:
  1. Herencia de único nivel
  2. Herencia de multi nivel
  3. Herencia jerárquica
  4. Herencia híbrida

Herencia de único nivel

En una herencia de único nivel, hay una única clase base y una única clase derivada es decir, las características de una clase base Mobile es extendida por la marca Samsung.


Herencia Multinivel
En una herencia de varios niveles, hay más que una solo nivel de derivación, es decir después de las características de la clase base que son extendidos por la marca Samsung. Ahora la marca Samsung ha fabricado su nuevo modelo agregando nuevas características o Sistema Operativo Avanzado como Android OS. Desde la generalización, entrar en más especificaciones. 



Herencia Jerárquica
En este tipo de herencia, múltiples clases derivadas serán extendidas de la clase base, esto es similar a la herencia de un solo nivel pero ahora junto con Samsung, Nokia también está tomando parte en la herencia.


Herencia Híbrida
Herencia Simple, múltiple y jerárquica todos juntos construyen una herencia híbrida.






Interface
Herencia múltiple donde la clase derivada se extenderá de múltiples clases bases.

Samsung usará la función de multiples telefonos(Mobile y Telephone). Esto crearía una confusión para el entendimiento del compilador para entender qué función debe ser llamada cuando cualquier evento en el teléfono dispara como Marcar() donde marcar esta disponible en ambos telefonos(Mobile y Telephone). Para evitar esta confusión C# vino con el concepto de interfaz que es diferente de la herencia múltiple en realidad.

Si tomamos una interfaz que es similar a una clase pero sin aplicación y solo declaración de propiedades, métodos delegados y eventos. La interfaz en realidad refuerza la clase para tener un modelo de contrato para proveer la implementación a los miembros de la interfaz.

Entonces ¿Cuál es el uso de la interfaz cuando no tiene ninguna implementación? la respuesta es que son útiles para tener contratos ya hechos, solo tenemos que implementar la funcionalidad en ese contrato.

Quiero decir , Marcar() podría permanecer en caso de Mobile y Telephone. No sería justo si le damos un nombre diferente cuando su tarea es llamar a la persona.

La interfaz es definido con la palabra clave “interface”. todas las propiedades y métodos con la interfaz deberían ser implementados si esto ha sido usado. esta es la regla de la interfaz.




Conclusión

Siguiendo el principio anterior y teniendo en cuenta los cuatro pilares de la POO, llevaría a desarrollar un buen programa y su vinculación con el escenario del mundo real le hará pensar mas profundamente. Espero que el artículo haya sido de tu completa satisfacción, y no te olvides de compartir tus comentarios, y sabes que compartir es valioso sin importar lo que pase.

ART: Como cargar vistas parciales en ASP.NET MVC usando Jquery Ajax


En este articulo, hablaremos vistas parciales en ASP.NET MVC y cargalos via Jquery Ajax Podría ver varios escenarios para esto. vamos asumir que tenemos una pagina que contiene múltiples vistas parciales y datos de varias fuentes. Podemos cargar cada vista parcial usan AJAX de forma individual, esto mejora la experiencia de usuario porque los componentes son cargados fácilmente si esperar hasta la carga de todos los componentes. Tan protnto como cada uno de las cargas de control, para el usuario estará disponible ara el usuario en la página.

Paso 1: Creando el proyecto
Yo estoy usando MVC 4 para este artículo; pero no importa si usas MVC 3, MVC 4 o MVC 5. Vamos a crear un proyecto MVC 4 en blanco en visual Studio 2012 y le vamos a llamar PartialView_Jquery.

Paso 2: Agregando clases modelo
Luego agregamos dos clases modelo Cliente y Producto, en la estructura del proyecto tiene que estar dentro de la carpeta Models.

Clase Producto:

Clase Cliente:
Paso 3: Agregando el Controlador
Ahora vamos a crear el controlador Home y los métodos Index, ObtenerProducto y ObtenerCliente.

Paso 5: Cargando de datos al modelo
Ahora vamos a crear una lista de los objetos Cliente y Producto, esto lo realizamos en los métodos del controlador Home creados en los pasos anteriores.

Este código es para el objeto cliente :


Esto es para el objeto Producto:


Paso 5: Creando la Vistas Parciales
Ahora creamos las vistas DetalleCliente.cshtml y DetalleProducto.cshtml relacionados con los métodos creados en el controlador Home Obtener Cliente y ObtenerProducto respectivamente(se puede crear haciendo click derecho sobre el método del controlador y seleccionando la opción crear vista).
Creando la vista parcial DetalleProducto.cshtml


Creando la vista parcial DetalleCliente.cshtml


Paso 6: Creando la Vista principal Index.cshtml
Es en esta vista donde vamos a cargar las dos vistas parciales, utilizando Jquery ajax, para agregar a nuestro proyecto los archivos script de jquery podemos utilizar la consola de administrador de paquetes de visual studio(Herramientas->Administrador de Paquetes de Biblioteca), y digitar install-Package Jquery, entonces se instalará en la carpeta Scripts de nuestro proyecto.

Ahora si podemos trabajar con nuestra vista principal Index.cshtml:


Paso 7: Probando la aplicación.
Ahora se han creado dos botones, cuando se presiona el botón carga la vista correspondiente, esto hará que la carga de la información sea más rápido porque solo esta cargando una porción de la pagina y no toda la 
página.

ART: Diferencia entre MVC y web API


Introducción
Este articulo explica la diferencia entre ASP.NET MVC y el ASP.NET Web API y también explica cuando usar Web API con MVC.


Acerca de MVC
Modelo Vista Controlador(MVC) divide una aplicación en tres partes, Modelo, Vista y Controlador. ASP.NET tiene muchas opciones para crear aplicaciones web  usando ASP.NET  Web Form, Framework MVC que combina las caracteriscticas de ASP.NET como MasterPages, Membership basado en autenticación. MVC esta en el ensamblado "System.Web.MVC".
Los componentes que son incluidos por MVC
Modelo: Los modelos son objetos usados para recuperar y almacenar el estado del modelo en la base de datos.vamos a ver un ejemplo: Hay un objeto “Item” que recupera los datos de la base de datos y realiza una operación y entonces actualiza la data en la base de datos. si una aplicación solo lee un conjunto de datos y lo envía a la vista, entonces la aplicación  no tiene una clase asociada y el modelo de la capa fisica.
Vista: Los componentes vista muestran la Interface de usuario(UI) de la aplicación que es creado por los datos del modelo. Por ejemplo: la vista de la tabla  Items mostrados en el DrowDownList y TextBoxes que dependen del estado actual del objeto “Item”.
Controlador: En MVC, los controladores son también llamados componentes. estos componentes administran la interacción de los usuarios y la selección de una vista para mostrar en la UI. El principal trabajo de los controladores es que estos administran los valores de las consultas y transfieren estos valores a los modelos.


Los modelos recuperan la información y actualizan la información en la base de datos. las vista son usados sólo para mostrar la información, y los controladores son usados para gestionar y responder a las entradas de los usuarios y sus interacciones.


Acerca de los Web API
ASP.NET Web API permite mostrar los datos en varios formatos, como XML y JSON. Este es un framework que usa los servicios HTTP y hace que esto sea fácil para proporcionar una respuesta a la solicitud del cliente. La respuesta depende de la petición de los clientes. Web API construye los servicios HTTP y gestiona la petición usando el protocola HTTP. Web API es codigo abierto y este puede ser hospedado en la aplicación o en el servidor IIS. la petición puede ser GET, POST, DELETE o PUt. Podemos decir de las Web API lo siguiente:
  • Es un Servicio HTTP
  • Es diseñado para llegar un amplio rango de clientes.
  • Utiliza la aplicación HTTP


Diferencia entre MVC y Web API
Hay muchas diferencias entre MVC y Web API, los que se indican a continuación:
  • Usamos MVC para desarrollar aplicaciones web  que responde tanto a datos como a vistas pero  Web API es usado para generar servicios HTTP que responden sólo a datos.
  • Web API  retorna los datos en varios formatos como JSON, XML y otros formatos  basados en la aceptación de la cabecera de petición. Pero MVC retorna datos en formato JSON usando  JSONResult.
  • Web Api soporta negociación de contenidos y autoalojamiento. Todas estas no son soportadas en MVC.
  • Web API incluye varias características de MVC, como ruteo, enlace de modelo pero estas características son diferentes y están definidas en el ensamblado “System.Web.HTTP” y en MVC estas características  son definidas en el asemble “System.Web.Mvc”.
  • Web API ayuda a la creación del servicio Restful cobre el  Framework .NET, pero MVC no los soporta.


Cuando Combinar MVC con Web API
  • Cuando hacemos autoalojamiento en la aplicación, en este combinamos ambos Controlador MVC y la API en un único proyecto y este ayuda a gestionar la peticiones AJAX  y responder en XML, JSON y otros formatos.
  • Combinamos MVc y Web API para habilitar la autorización para una aplicación. En esto creamos dos filtro, uno para Web API y otro para MVC.

    Este imagen describe la combinación de ASP.NET y ASP Web API

    ART: Simple Manera de enlazar Lista de Objetos a una Vista usando SPRING MVC en la nube con GAE

    Desde ya buen tiempo vengo experimentando sobre la nube de Google GAE(Google App Engine). La idea de este post es realizar el mismo ejemplo de listas de objetos que hicimos con ASP.NET MVC para mostrar en una vista la lista de objetos. Es bastante parecido si se trabaja con SPRING MVC, ademas de ser software libre, osea no hay que pagar y Google da una cuota gratis en la nube lo suficiente para empezar.

    Bueno se sobreentiende que tienen conocimiento básico de lo que significa MVC( Modelo Vista Controlador).

    Es necesario que tengan instalado el Eclipse, el SDK de JAVA, el pluying de GAE y se descarguen Spring. Mas adelante se pueden crear una cuenta en GAE para publicar la aplicacion en la nube, pero por ahora lo podemos probar de forma local.

    Para empezar vamos ha seleccionar en Eclipse( barra estandar) el icono de GAE y crear nuevo proyecto).



    Como podemos observar, le hemos asignado el nombre MvcList a nuestro proyecto y que use el SDK del GAE y en donde dice Identifier para GAE no le asignamos nada porque no vamos a publicar en la nuve todavia( hay que crearse primero una cuenta en Google).

    Algunos datos generales de la configuracion de nuestro proyecto para trabajar con spring, ahorita si hacemos ejecutar la configuracion por defecto esta para trabajar con JSP y no con spring, como sabras en software libre la mayor parte de las configuraciones hay que hacerlo de forma manual, esto es bueno por que te ayuda a entender mejor las cosas y a lo contrario de lo que sucede con .NET, que te hace transparente todo y cuando sucede un problema no sabes como solucionarlo(siempre es bueno entender para que sirve cada cosa). Primero observemos la estructura de nuestro proyecto creado:


    Primero vamos a modificar nuestro archivo de configuración de proyecto web.xml


    El objeto dispatcherservlet, se encargara de controlar el enrutamiento de las solicitudes. Este objeto(dispatcher-servlet.xml) lo crearemos en el mismo nivel que web.xml.




    aqui hemos definido los componentes web, en context hemos dado la ruta del controlador(ahorita lo crearemos), la ruta de la vista..
    Ahora por ultimo los archivos dll de spring hay que copiarlos en la carpeta lib. y con esto quedaria listo el proyecto para poder continuar con la creacion de las vista y contoladores.

    Agregando el Modelo
    Vamos a agregar la clase UserModel.java, dentro de la carpeta src con el nombre de paquete mvclist.model.



    Se muestra a continuación el código de la clase UserModel.java




    Agregando el Controlador


    Vamos a agregar Otra clase UserController.java, dentro de la carpeta src con el nombre de paquete mvclist.controller.



    como podemos observar dentro del Método DisplayUserDetails se ha instanciado el objeto UserModel. ademas devolvemos un objeto ModelAnView para la vista llamada displayuserdetails que a continuación crearemos.


    Agregando la Vista
    En el archivo de configuración dispatcher, hemos definido la ruta de la vista dentro una carpeta View. entonces procedemos a crear en la carpeta WAR/view, la vista llamada displayuserdetails.jsp. Pero adicionalmente también crearemos un include.jsp que contiene la configuración de cabecera de las vistas.


    El archivo include.jsp conene lo sgte:

    <%@ page session="false"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>


    Ahora si creamos la vista

    Agregamos lo siguiente a la vista displayuserdetails.jsp





    Ejecutar el Proyecto
    Al ejecutar el proyecto mostrara lo siguiente:



    Conclusion
    • Hemos logrado hacer el mismo ejercicio con dos tecnologías Listas en ASP.NET MVC y Listas en JAVA MVC(SPRING MVC), llegando al concluir que en conceptualizacion es lo mismo; pero que con SPRING es un poquito mas trabajoso en cuanto a su configuración. 
    • Nuestro controlador puede conectarse con facilidad a cualquier origen de datos, y este ser volcado a la vista para su presentación.

    ART: Simple Manera de enlazar Lista de Objetos a una Vista usando ASP.NET MVC



    Introducción
    La Listas son una excelente forma de trabajar, con facilidad proyectos de desarrollo con Programación Orientada a Objetos. Personalmente yo uso listas de objetos en mis proyectos en vez de DataTable.

    Yo quiero mostrar una lista de usuarios en una página HTML usando MVC. Yo estoy asumiendo que ustedes tienen conocimiento básico de ASP.NET MVC. A continuación muestro como hacerlo con un ejemplo básico sin conexión a datos.

    Para empezar vamos a crear un proyecto(Visual Studio 2012) seleccionado MVC 4-> Aplicación de Internet y lo llamaremos MvcList.


    Agregando el Modelo 


    Nosotros debemos agregar el archivo UserModel.cs en la carpeta Models 
    Este tiene las propiedades username, age y gender, estos atributos tienen definidos validaciones. 




    Agregando el Controlador 

    Hacer click derecho en la carpeta Controller y agregar la clase UserController.cs



    Nosotros hemos agregado el archivo UserController.cs dentro la carpeta Controller y creado el metodo DisplayUserDetail(). Dentro de este metodo nosotros creamos una lista de usuarios y pasamos estos a la vista en la ultima instruccion.


    Agregando la Vista 

    Hacer click derecho en DisplayUserDetails y seleccionar Add View


    • Seleccionar el checkbox “crear una vista fuertemente tipada” 
    • Seleccione “UserModel” de la Clase de Modelo 
    • Seleccione “List” de la plantilla para scatfold 
    La carpeta con el nombre User(porque así se llama el controlador) es creado automáticamente dentro de la carpeta View y dentro de la carpeta User se ha creado la vista fuertemente tipada DisplayUserDetails.cshtml


    Modificando Global.asax

    Nosotros tenemos algunas configuraciones por defecto del archivo Global.asax; necesitamos modificar esto como en el siguiente codigo.

    namespace MvcList
    {
    public class RouteConfig
    {
    public static void RegisterRoutes(RouteCollection routes)
    {
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "User", action = "DisplayUserDetails", id = UrlParameter.Optional }
    );
    }
    }
    }

    Ejecutar el Proyecto 

    Al Ejecutar la aplicación y mostrará lo siguiente



    Conclusión: 

    Este artículo muestra una manera simple de enlazar datos desde un modelo a una vista. 
    Debajo del código del controlador nosotros podemos modificar el código como para nuestros requerimientos y también podemos llamar a una Base de datos y de esta forma llenar la lista de usuarios desde la base de datos. y después pasar la lista de usuarios a la vista y mostrarlo.

      ART: Diferencia entre JavaScript y Java


      JavaScript y Java son dos lenguajes de programación completamente diferentes, en conceptos y diseños.


      JavaScript:


      1. JavaScript es inventado por "Brendan Eich"
      2. Este es un lenguaje de programación de scripting y su nombre oficial es "ECMA-262".Apareció en el navegador Netscape(este navegador ya desapareció) en 1995, pero mas tarde este fue adoptad o por "ECMA" (un navegador estándar) en 1997.
      3. JavaScript es un lenguaje Orientado a Objeto, pero no usa clases ni crea objetos de estas clases a diferencia de otros lenguajes. Es lenguaje basado en prototipos y no en clases.
      4. JavaScript no es un lenguaje tipado. debido a esto, puede definir solo "un tipo de numero" este puede ser escrito con o sin numero decimal.
        ejemplo: var=pi=3.14  //numero con decimal
        var x=36  //un numero sin decimal
      5. In caso de números extra largos o extra pequeños, se pueden escribir estos números usando exponencial(símbolo científico) como se muestra en el siguiente ejemplo:
      6. ejemplo: var x=136e6 //significa 136000000
      7. var y=136e.6  //significa 0.000136

      Java:

      1. Java es inventado por "Sun Microsystems" y diseñado por "James Gosling"
      2. Es un complejo lenguaje de programación basado en POO y llega a la categoría de "C" de lenguajes. su primer nombre es "OAK".
      3. Java es un lenguaje de Programación Orientado a Objetos en el cual podemos definir un numero de clases y numero de objetos de esas clases así como las instancias de esos objetos. Java es un lenguaje basado en clases.
      4. A diferencia de JavaScript, se puede definir "diferentes tipos de números", como enteros, entero corto, entero largo, numero de punto flotante, etc.
        ejemplo: int var x; //variable entera