sábado 06 de septiembre de 2008

El método main de Java

Una aplicación es un programa convencional que se invoca desde el intérprete de comandos. Este programa se carga directamente desde el disco y no de la red Internet.
Ahora veremos la aplicación más simple que se puede escribir en Java: el clásico "Hola Mundo''.
Crear un archivo llamado Hola1.java con:

// La aplicación ¡Hola Mundo!
public class Hola1 {
public static void main (String args[]) {
System.out.println("¡Hola Mundo!");
}
}

1. Compilar con: javac Hola1.java
2. Ejecutar con: java Hola1

Observaciones:
1.- La primera línea es un comentario. Todo lo que viene después de la secuencia // hasta el fin de línea es un comentario.
2.- Java también acepta comentarios "a la C'': /* ... */
3.- Luego viene la definición de una clase llamada Hola1:
public class Hola1 { ... }

En Java un programa es un conjunto de definiciones de clases que están dispuestas en uno o más archivos.

4.- Dentro de la clase Hola1 se define el método main:
public static void main (String args[]) { ... }

En una clase se definen uno o más métodos.

° La palabra reservada "public" significa que un método puede ser llamado desde otras clases, o que la clase puede ser usada por clases fuera de la jerarquía de la propia clase. Otros tipos de acceso son ”private” o ”protected”.

° La palabra reservada "static" indica que el método es un método de clase, asociado a la clase en vez de a instancias de la misma. El método main debe ser estático o "de clase".
los métodos estáticos o de clase (también denominados métodos compartidos) están asociados a una clase en particular.

° La palabra "void" indica que el método main no retorna ningún valor.

° La forma "(String args[])" es la definición de los argumentos que recibe el método main. En este caso se recibe un argumento. Por acuerdo se referencia como ”args”, aunque puede emplearse cualquier otro identificador. Los paréntesis [] indican que el argumentos es un arreglo y la palabra String es el tipo de los elementos del arreglo.

-> Por lo tanto main recibe como argumento un arreglo de strings que corresponden a los argumentos con que se invoca el programa.

5.- La instrucción System.out.println(...) despliega un string en la consola.

Java no posee una sintaxis abreviada para desplegar strings.
Consideraciones importantes:
El nombre del archivo (Hola1.java) siempre debe ser el nombre de la clase (Hola1) con la extensión ".java''.

Todas las aplicaciones deben definir el método main.
Al invocar el intérprete de java con java Hello1, se busca y se invoca un método main que textualmente haya sido definido con:
public static void main (String args[]) { ... }

No cambie el nombre de este procedimiento ni omita ninguno de sus atributos. Tampoco cambie el tipo de los argumentos o el valor retornado.

jueves 04 de septiembre de 2008

Arreglos Bidimensionales en Java

Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o mas columnas y uno o mas renglones.
Para procesar (recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for(), uno externo para controlar renglón y uno interno para controlar columna.
Los elementos de la tabla se deberan simbolizar con el nombre de la tabla y 2 subindices, el primer subindice referencia al renglon y el siguiente subindice referencia la columna los dos dentro del mismo corchete.

La declaración de una tabla sera de acuerdo a los siguientes formatos:

1) tipodato nomtabla[][]= new tipodato[reng][col];
ejemplo:
int calif[][]=new int[3][4];
double ingresos[][]= new double[3][4];

2) Clasenumerica objetotabla[][]= new constructor[ren][col];
ejemplo;
Integer calif[][]= new Integer[2][3];
Double ingresos[][]=new Double[3][4];
Para capturar sus elementos, usaremos el procedimiento desarrollado con listas.
Para efectuar otros procesos tales como operaciones despliegue con todos los elementos de la tabla se deberan usar 2 ciclos un for externo para controlar renglon y un for interno para controlar columna.

Ejemplo:
static void visualizar(int b[][]){
int i,j;
System.out.println(“\n\t Matriz leida “);
for(i=0; i < b.length; i++){
for(j=0; j < b[i].length; j++)
System.out.print(b[i][j]+“ “);
System.out.println(“ “);
}
}
}

Mete datos a matriz
Renglón 0: Matriz leida
45 45 75 25 10 40
75 20 14 36 15 26
25 21 15 37 16 27
10
40

martes 02 de septiembre de 2008

Sentencia Continue en Java

Sirve para volver al principio del ciclo en cualquier momento, sin ejecutar las líneas que haya por debajo de la palabra continue. Esta instruccion, al ejecutarse en un ciclo while, for o do while evita las instrucciones restantes en el cuerpo del ciclo y procede con la siguiente iteración del mismo. En las instrucciones while y do while, el programa evalua la condición de continuación de ciclo inmediatamente después de que se ejecuta la instrucción continue. En una instrucción for se ejecuta la expresión de incremento y luego el programa evalua la condición de continuación del ciclo.

La sentencia de continue es de tipo de control de bucles. Dentro de la interacion en un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta sentencia rompe la interacion de dicho bucle. Provocando que se ejecute la siguiente interacion de dicho bucle, ignorando las sentencias posteriores a "continue".

for(int j = 0; j<10; j++){
sentencia 1;
sentencia 2;
sentencia 3;
continue;
sentencia 4;
}

Este bucle se ejecuta 10 veces, pero con la salvedad de que la sentencia 4 no se ejecuta ninguna vez. Es decir, se ejecutan las sentencias 1, 2 y 3 y cuando se llega a la sentencia de control continue se vuelve de nuevo a comprobar la condicion del for y en caso de cumplirse de nuevo a la sentencia 1 y así sucesivamente.

El continue se puede utilizar en el siguiente bloque:
OuterLoop: for (int i=0; i < 10; i++) {
InnerLoop: for (int j=0; j < 10: j++) {
System.out.println(i +” - ” + j);
if ( i == j ) continue OuterLoop;
}
}

Hay varias cosas para tener en cuenta con este código. Lo primero es la capacidad para etiquetar un bucle, para esto se coloca un ‘label’ separado por ‘:’ de la declaración del bucle, esto permite identificar varios bucles encadenados de tal manera que se pueda saltar hacia cualquiera de ellos con la palabra reservada ‘continue’.

La palabra reservada ‘continue’ solamente es valida dentro de una estructura de bucle, de ser escrita porque generara un error de compilación. Esta palabra reservada sirve para saltarse o parar la iteración actual del bucle pasando a donde se le indique en la etiqueta, si no se indica etiqueta se salta la iteración del bucle donde se encuentre.

Para saltarse el bucle completo es necesario recurrir a la palabra reservada ‘break’. Esta palabra reservada puede ser utilizada tanto en un bucle como en una estructura ’switch’ y tiene el mismo comportamiento dentro de los bucles que ‘continue’.

sábado 23 de agosto de 2008

JVM (Máquina Virtual de Java)

Una Máquina virtual Java (en inglés Java Virtual Machine, JVM) es un programa nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (el Java bytecode), el cual es generado por el compilador del lenguaje Java.
El código binario de Java no es un lenguaje de alto nivel, sino un verdadero código máquina de bajo nivel, viable incluso como lenguaje de entrada para un microprocesador físico. Como todas las piezas del rompecabezas Java, fue desarrollado originalmente por Sun Microsystems.
La JVM es una de las piezas fundamentales de la plataforma Java. Básicamente se sitúa en un nivel superior al Hardware del sistema sobre el que se pretende ejecutar la aplicación, y este actúa como un puente que entiende tanto el bytecode, como el sistema sobre el que se pretende ejecutar. Así, cuando se escribe una aplicación Java, se hace pensando que será ejecutada en una máquina virtual Java en concreto, siendo ésta la que en última instancia convierte de código bytecode a código nativo del dispositivo final.La gran ventaja de la máquina virtual java es aportar portabilidad al lenguaje de manera que desde Sun Microsystems se han creado diferentes máquinas virtuales java para diferentes arquitecturas y así un programa .class escrito en un Windows puede ser interpretado en un entorno Linux. Tan solo es necesario disponer de dicha máquina virtual para dichos entornos.

sábado 16 de agosto de 2008

JDK (Java Development Kit)

Java Development Kit o (JDK), es un software que provee herramientas de desarrollo para la creación de programas en java. Puede instalarse en una computadora local o en una unidad de red.
En la unidad de red se puede tener la aplicación distribuida en varias computadoras y trabajar como una sola aplicación.

JDK en sistemas Windows
En los sistemas Windows sus variables de entorno son:
JAVAPATH: es un path completo del directorio donde esta instalado el JDK.
CLASSPATH: son las librerías o clases de usuario.
PATH: variable donde se agrega la ubicación de JDK

Los programas más importantes que se incluyen son:
Appletviewer: es un visor de applet para generar sus vistas previas, ya que un applet carece de método main y no se puede ejecutar con el programa java.
Javac: es el compilador de JAVA.
java: es el intérprete de JAVA.
javadoc: genera la documentación de las clases java de un programa.

JDK/J2SE.
JDK ("Java Development Kit") y J2SE ("Java 2 Standard Edition") son nombres para el mismo componente utilizado en ambientes Java, el cual agrupa las diversas funcionalidades necesarias para desarrollar programas Java.
Hoy en día, existen JDK's/J2SE para diversos ambientes y plataformas, los cuales ofrecen lo siguiente:
· Un compilador Java, capaz de generar Byte-Code.
· Un JVM ("Java Virtual Machine"), capaz de ejecutar Byte-Code.
· Un conjunto de Clases base utilizadas para generar programas Java.
· Otras utilerías para administrar código escrito en Java.
Para descargar el JDK haz clic aquí

jueves 14 de agosto de 2008

Historia de Java

La tecnología Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.
El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.
El término Java fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería cercana. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los archivos .class que genera el compilador, son en hexadecimal, 0xCAFEBABE. Otros simplemente dicen que el nombre fue sacado al parecer de una lista aleatoria de palabras.
Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesión maratoniana de tres días entre John Gaga, James Gosling, Joy Naughton, Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web. Sintieron que la llegada del navegador web Mosaic, propiciaría que Internet se convirtiese en un medio interactivo, como el que pensaban era la televisión por cable. Naughton creó entonces un prototipo de navegador, WebRunner, que más tarde sería conocido como HotJava.
En 1994, se les hizo una demostración de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld, a que vieran la luz pública Java y HotJava, el navegador Web. El acontecimiento fue anunciado por John Gage, el Director Científico de Sun Microsystems. El acto estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte de Marc Andreessen, Vicepresidente Ejecutivo de Netscape, que Java sería soportado en sus navegadores. El 9 de enero del año siguiente, 1996, Sun fundó el grupo empresarial JavaSoft para que se encargase del desarrollo tecnológico. Dos semanas más tarde la primera versión de Java fue publicada.
La promesa inicial de Gosling era Write Once, Run Anywhere (Escríbelo una vez, ejecútalo en cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de ejecución (la JVM) ligero y gratuito para las plataformas más populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma.
El entorno de ejecución era relativamente seguro y los principales navegadores web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en las páginas web.
Java ha experimentado numerosos cambios desde la versión primigenia, JDK 1.0, así como un enorme incremento en el número de clases y paquetes que componen la librería estándar.
Desde J2SE 1.4, la evolución del lenguaje ha sido regulada por el JCP (Java Community Process), que usa Java Specification Requests (JSRs) para proponer y especificar cambios en la plataforma Java. El lenguaje en sí mismo está especificado en la Java Language Specification (JLS), o Especificación del Lenguaje Java. Los cambios en los JLS son gestionados en JSR 901.

miércoles 13 de agosto de 2008

¿Qué es Java?



Java

Paradigma: Orientado a objetos
Apareció en: 1991
Diseñado por: Sun Microsystems
Tipo de dato: Fuerte, Estático
Implementaciones: Numerosas
Influido por: Objective-C, C++, Smalltalk, Eiffel
Ha influido: C#, J#, JavaScript
Sistema operativo: Multiplataforma
Licencia de software: GNU GPL / Java Community Process.
___________________________________________________________________
Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general. Está desarrollado por la compañía Sun Microsystems con gran dedicación y siempre enfocado a cubrir las necesidades tecnológicas más punteras.
Una de las principales características por las que Java se ha hecho muy famoso es que es un lenguaje independiente de la plataforma. Eso quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, pues antes tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este último se entienda perfectamente.
La independencia de plataforma es una de las razones por las que Java es interesante para Internet, ya que muchas personas deben tener acceso con ordenadores distintos. Pero no se queda ahí, Java está desarrollándose incluso para distintos tipos de dispositivos además del ordenador como móviles, agendas y en general para cualquier cosa que se le ocurra a la industria.

miércoles 06 de agosto de 2008

Clasificación de los lenguajes de Programación


Los lenguajes de programación se determinan según el nivel de abstracción, Según la forma de ejecución y Según el paradigma de programación que poseen cada uno de ellos y esos pueden ser:


Según su nivel de abstracción:


· Lenguajes de bajo nivel
Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel es, por excelencia, el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa.


· Lenguajes de medio nivel
Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.


· Lenguajes de alto nivel
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática.


Según la forma de ejecución:


· Lenguajes compilados
Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.
Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.


· Lenguajes Interpretados
Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.
La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.


Según el paradigma de programación:


Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro, sino que cada uno tiene ventajas y desventajas. Dependiendo de la situación un paradigma resulta más apropiado que otro.
Atendiendo al paradigma de programación, se pueden clasificar los lenguajes en:


El paradigma imperativo o por procedimientos es considerado el más común y está representado, por ejemplo, por el C o por BASIC.
El paradigma funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell.
El paradigma lógico, un ejemplo es PROLOG.
El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk.


Lenguajes imperativos
· BASIC
· C
· C++
· Java
· C#
· Perl
· Unerg


Lenguajes Funcionales
· Puros:
· Haskell
· Miranda
· Híbridos:
· Lisp
· Scheme
· Ocaml
· Standard ML
· ML
· Scala

Lenguajes Lógicos
· Prolog


Lenguajes orientados a objetos
· ActionScript
· Ada
· C++
· C#
· VB.NET
· Visual FoxPro
· Clarion
· Delphi
· Harbour
· Eiffel
· Java
· JavaScript
· Lexico (en castellano)
· Objective-C
· Ocaml
· Oz
· Perl (soporta herencia múltiple)
· PHP (en su versión 5)
· Python
· Ruby
· Smalltalk
· Magik (SmallWorld)

Compilación

El programa escrito en un lenguaje de programación (comprensible por el ser humano, aunque se suelen corresponder con lenguajes formales descritos por gramáticas independientes del contexto) no es inmediatamente ejecutado en una computadora. La opción más común es compilar el programa, aunque también puede ser ejecutado mediante un intérprete informático
El código fuente del programa se debe someter a un proceso de transformación para convertirse en lenguaje máquina, interpretable por el procesador. A este proceso se le llama compilación.
La compilación es el proceso de traducción de programas fuente a programas objeto. El programa objeto obtenido de la compilación ha sido traducido normalmente al código común del lenguaje de máquina.
Para conseguir el programa máquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina directamente ejecutable.

martes 05 de agosto de 2008

Programación

Código utilizado para la creación de programas. Lo utilizan los programadores (generalmente especializados en un lenguaje en particular) para la creación de diversas aplicaciones. En informática, es cualquier forma de escritura (lenguaje) que posee determinadas instrucciones que combinadas y modificadas correctamente (dependiendo del resultado que se desee), podrán ser interpretadas y así resultar en un programa, página web, etc.
En informática la programación es un proceso por el cual se escribe (en un lenguaje de programación), se prueba, se depura y se mantiene el código fuente de un programa informático. Dentro de la informática, los programas son los elementos que forman el software, que es el conjunto de las instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada.

Algoritmo


Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) un algoritmo. Nótese que es la secuencia de instrucciones en sí la que debe ser finita, no el número de pasos realizados como la ejecución de ellas.
Los programas suelen subdividirse en partes menores (módulos), de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa.