Programación al Extremo

Buscar en este blog

jueves, 26 de diciembre de 2013

Fundamentos de Programación en Java
Fecha de Publicación:
Publicado por:
Seguir Seguir en twitter
Seguir Seguir en facebook
Seguir Seguir en Google+

Programación al Extremo : Java
Introduccion 


Programación Orientada a Objetos
La Programación Orientada a Objetos es un paradigma de programación diferente a la Programación Estructurada o a la misma Programacion Procedural al que la mayoria de los programadores están acostumbrados a utilizar.
En la Programacion Estructurada y la Programación Procedural lo mas importante es el procedimiento que se esta desarrollando a través de un lenguaje de programación. En Programacion Orientada a Objetos, se hace un gran enfasis a los datos, y todo gira alrededor de ellos.
Cada vez que alguien quiere hacer una aplicacion, debe de pensar en los elementos (datos) que va a utilizar para programar, y la relación que existe entre estos datos, en su forma de interactuar entre si.


El mundo esta lleno de objetos y estos objetos tienen ciertas características que los hacen únicos y esas características se derivan de atributos que agrupadas representan a una clase que compone a los objetos definidos.
Java es un lenguaje que nos ayuda a entender mucho mejor el paradigma Orientado a Objetos de una manera mas sencilla y natural.


 Antecedentes del Lenguaje Java

Java se creó como parte de un proyecto de investigación para el desarrollo de software avanzado para una amplia variedad de dispositivos de red y sistemas embebidos. La meta era diseñar una plataforma operativa sencilla, segura, portable, distribuida y de tiempo real.

Cuando se inició el proyecto, C++ era el lenguaje del momento. Pero a lo largo del tiempo, las dificultades encontradas con C++ crecieron hasta el punto en que se pensó que los problemas podrían resolverse mejor creando una plataforma de lenguaje completamente nueva.

Se hizo uso de la arquitectura y diseño de una amplia variedad de lenguajes como Eiffel, SmallTalk, Objetive C y Cedar/Mesa. El resultado es un lenguaje que se ha mostrado ideal para desarrollar aplicaciones de usuario final seguras, distribuidas y basadas en red en un amplio rango de entornos desde los dispositivos de red embebidos hasta su uso para soluciones en Internet.

Características en el Diseño de Java

- Sencillo, orientado a objetos y familiar: Sencillo, para que no requiera grandes esfuerzos de entrenamiento para los desarrolladores. Orientado a objetos, porque la tecnología de objetos se considera madura y es el enfoque más adecuado para las necesidades de los sistemas distribuidos y/o cliente/servidor. Familiar, porque aunque se rechazó C++, se mantuvo Java lo más parecido posible a C++, eliminando sus complejidades innecesarias, para   facilitar la migración al nuevo lenguaje.

- Robusto y seguro: Robusto, simplificando la administración de memoria y eliminando las complejidades del uso de apuntadores y aritmética de apuntadores del C. Seguro para que pueda operar en un entorno de red.
- Independiente de la arquitertura y portable: Java está diseñado para soportar aplicaciones que serán instaladas en un entorno de red heterogéneo, con hardware y sistemas operativos diversos. Para hacer esto posible el compilador Java genera un código llamado 'bytecodes' o comúnmente conocido como código byte, un formato de código independiente de la plataforma diseñado para transportar código eficientemente a través de múltiples plataformas de hardware y software. Es además portable en el sentido de que es rigurosamente el mismo lenguaje en todas las plataformas. El 'bytecode' es traducido a código máquina y ejecutado por la Java Virtual Machine, que es la implementación Java para cada plataforma hardware-software concreta.

- Alto rendimiento: A pesar de ser interpretado, Java tiene en cuenta el rendimiento, y particularmente en las últimas versiones dispone de diversas herramientas para su optimización. Cuando se necesitan capacidades de proceso intensivas, pueden usarse llamadas a código nativo.

- Interpretado, multi-hilo y dinámico: El intérprete Java puede ejecutar codigo byte en cualquier máquina que disponga de una Máquina Virtual Java (JVM). Además Java incorpora capacidades avanzadas de ejecución multi-hilo (ejecución simultánea de más de un flujo de programa) y proporciona mecanismos de carga dinámica de clases en tiempo de ejecución.


Características del Lenguaje

ü  Lenguaje de propósito general.

ü  Lenguaje Orientado a Objetos.

ü  Sintaxis inspirada en la de C/C++.

ü  Lenguaje multiplataforma: Los programas Java se ejecutan sin variación (sin recompilar) en cualquier plataforma soportada (Windows, UNIX, Mac, etc.)

ü  Lenguaje interpretado: El intérprete a código máquina (dependiente de la plataforma) se llama Java Virtual Machine (JVM). El compilador produce un código intermedio independiente del sistema denominado bytecode ó código byte.

ü  Lenguaje gratuito: Creado por SUN Microsystems, que distribuye gratuitamente el producto base, denominado JDK (Java Development Toolkit) o actualmente J2SE (Java 2 Standard Edition).

ü  API distribuida con el J2SE muy amplia. Código fuente de la API disponible.
Facilidades del J2SE  (Java 2 Estándar Edition)
ü  Herramientas para generar programas Java. Compilador, depurador, herramienta para   documentación, etc.
ü  La JVM, necesaria para ejecutar programas Java.
ü  La API de Java (jerarquía de clases).
ü  Código fuente de la API (Opcional).
ü  Documentación.
Java Runtime Environment  (JRE)
JRE es el entorno mínimo para ejecutar programas Java 2. Incluye la JVM y la API. Está incluida en el J2SE aunque puede descargarse e instalarse separadamente. En aquellos sistemas donde se vayan a ejecutar programas Java, pero no compilarlos, el JRE es suficiente. 
El JRE incluye el Java Plug-in, que es el 'añadido' que necesitan lo navegadores (Explorer o Netscape) para poder ejecutar programas Java 2. Es decir que instalando el JRE se tiene soporte completo Java 2, tanto para aplicaciones normales (denominadas 'standalone') como para Applets (programas Java que se ejecutan en una página Web, cuando esta es accedida desde un navegador).


Jerarquía de Operadores Java

Jerarquía de los operadores aritméticos

Prioridad
Operadores
Asociatividad
1
( )
 Empezando por los paréntesis más internos
2
++, --, +(positivo), - (negativo)
 De derecha a izquierda, ++ y --  dependiendo de la posición
3
*,/,%
 De izquierda a derecha
4
+, -
 De izquierda a derecha
5
=,+=,-=,*=, /=,%=
 De derecha a izquierda




Variables, Operaciones y Jerarquía en las Operaciones Java

En Java existen dos categorías de tipos de datos:
  • Tipos Primitivos. Los cuales se definen abajo.
  • Referencias. Las cuales corresponden a clases y objetos que se tratarán posteriormente.

Tipos primitivos

Los tipos primitivos son los que permiten manipular valores numéricos (con distintos grados de precisión), caracteres y valores boléanos (verdadero / falso). Los Tipos Primitivos son:
  • boolean: Puede contener los valores true o false.
  • byte: Enteros. Tamaño 8-bits. Valores entre -128 y 127.
  • short: Enteros. Tamaño 16-bits. Entre -32768 y 32767.
  • int: Enteros. Tamaño 32-bits. Entre -2147483648 y 2147483647.
  • long: Enteros. Tamaño 64-bits. Entre -9223372036854775808 y 9223372036854775807.
  • float: Números en coma flotante. Tamaño 32-bits.
  • double: Números en coma flotante. Tamaño 64-bits.
  • char: Caracteres. Tamaño 16-bits. Unicode. Desde '\u0000' a '\uffff' inclusive. Esto es desde 0 a 65535

Variables

Una variable es un área en memoria que tiene un nombre y un Tipo asociado. El Tipo es o bien un Tipo primitivo o una Referencia.
Es obligatorio declarar las variables antes de usarlas. Para declararlas se indica su nombre y su Tipo, de la siguiente forma:
tipo_variable nombre ;
Ejemplos:
int i;         // Declaracion de un entero
char
letra;    // Declaracion de un caracter
boolean
flag;  // Declaracion de un booleano

·         El; es el separador de instrucciones en Java.
·         El símbolo // indica comentarios de línea, se ponen después de una instrucción para comentarla, el compilador no las toma al detectarlas.
En Java las mayúsculas y minúsculas son significativas. No es lo mismo el nombre       letra que Letra.
·         Todas las palabras reservadas del lenguaje van en minúsculas. 
Se pueden asignar valores a las variables mediante la instrucción de asignación (=). Por ejemplo:
i = 5;          // a la variable i se le asigna el valor 5
letra = 'c';    // a la variable letra se le asigna el valor 'c'
flag = false;  // a la variable flag se le asigna el valor false

La declaración y la asignación se pueden combinar en una sola expresión:
int i = 5;        
char letra = 'c';  
boolean flag = false; 

Operaciones Básicas
En java al igual que en C++ se tienen una serie de operadores que ayudan a obtener cálculos, dependiendo de los valores a utilizar, Java trabaja con los siguientes operadores:
Operadores Aritméticos
Operador en Java
Significado
+
suma
-
resta
*
multiplicación
/
división
                     %
residuo

Otros operadores de Asignación
En Java, como en C++, es posible abreviar algunas expresiones de asignación como se muestra en la siguiente tabla:
Operador
Expresión equivalente
v + = e
v = v + e
v - = e
v = v – e
v * = e
v = v * e
v / = e
v = v / e
v % = e
v = v % e


Otros Operadores aritméticos
En Java, al igual que en C++, existen también los siguientes operadores aritméticos:
        ++ incremento

        -- decremento
Publicar un comentario