CONCEPTO DE EXCEPCIONES

Una excepción es un proceso usado para describir algo que no esperaba que funcionara de esa manera. Por lo regular las excepciones se ejecutan cuando el código ha generado un error.

Un error en un código de java puede ser por ejemplo, provocado por la llamada a un método con datos no validos, abrir un archivo que no existe, fallo en la conexión de Internet, division por cero, etc.

CLASES DE EXCEPCIONES

Las excepciones son subclases de java.lang.Throwable. Funcionan como indicadores o señales para identificar cuando el código deja de comportarse normalmente y como puede manejarse para continuarlo.

Las excepciones pueden ser nombradas para identificarlas, están las predefinidas por el sistema Java y las definidas por el programador. Se expresa que las excepciones son elevadas(raised) o lanzadas (thrown) en el punto donde generan una interrupción en el curso normal del código. También se dice que pueden ser manipuladas (handled) o capturadas (caught) en el punto donde se reanuda la ejecución normal del código.

Java nos trae dos clases de excepciones que podemos manejar, las comprobadas y las no comprobadas.

Las excepciones comprobadas, son aquellas que se espera que el programador identifique y arregle en el programa, se generan por causas externas que pueden alterar el programa en tiempo de ejecución, por poner un ejemplo no encontrar un archivo.

Las excepciones no comprobadas proceden de errores del codigo, estas son difíciles de identificar por que el compilador o la JVM no le esta indicando en algún momento al programador que la verifique o que haga algo para corregirla cuando se produce.

De las excepciones que no son comprobadas tenemos las que se deben a errores en el código, también llamadas errores de tiempo de ejecución. Un ejemplo es el ejecutar un array vacío.

Las excepciones que son dificiles de recuperar debido a errores en el entorno se denominan errores, a este tipo de excepciones pertenecen situaciones como memoria ocupada

  • Excepciones comprobadas
  • Excepciones no comprobadas
    • Excepciones en tiempo de ejecución.
    • Errores.

Como todo en Java son clases y objetos, las excepciones en java se maneja como objetos segun su tipo:

  • Clase Exception: Representa excepciones comprobadas y no comprobadas. Efectua una continuacion del código, manejandolo por una modificacion de código en vez de terminar el programa. Es causado por efectos del entorno y puede gestionarse debido a que en la mayoria de las veces son errores ocacionados por el usuario del programa.
  • Clase Error: Es usada para condiciones de error graves, no comprobadas, cuando esto sucede no debe esperar que el programa responda correctamente o intente recuperarse.
  • Clase RuntimeException: Es usada en excepciones no comprobadas que pueden ser resultantes de codigo defectuoso. Cuando este tipo de excepción sucede trate de mantener el programa ejecutandose. Este tipo de excepciones indican un problema de diseño o implementacion, por lo regular un programa que funcione bien no genera este tipo de excepciones, por lo que no es recomendable gestionarlos
Hay dos alternativas para manejar las excepciones, una es detectar el error y permitir que la clase lo maneje, o dos, reenviar la excepcion al metodo que la invoco para indicar que se trata de un error.

REGLAS DE GESTION DE EXCEPCIONES

Para efectuar que el código permanezca siempre en funcionamiento y sea estable y mantenga su calidad, el lenguaje Java exige una excepcion comprobada ( Clase Exception) en un determinado punto del código.

El metodo que va a contener la excepcion debe definir la accion a realizar en el justo lugar donde se produce el problema, para gestionarlo puede efectuar cualquiera de las siguientes opciones:

  1. Un bloque try-catch-finally.
    la clausula catch debe contener la excepcion que debe manejar o una superclase, aunque la clausula este vacia.
  2. Declarar Excepciones que un método puede generar:
    Significa que el metodo devuelve la excepcion al metodo que lo generó, esto es declarar en el código que no lo va a gestionar y le deja esa responsabilidad al método.

THROW Y THROWS

Ya que las excepciones son objetos hay una manera de llamar a un objeto de este tipo:

throw e = new Exception();

Es distinto de llamar la sentencia throws en un método:

static void llamadaMetodo( argumentos ) throws TipoException {
 codigo;
 codigo;
 codigo;
}

Si un método esta generando una excepción comprobada y no la puede capturar entonces debe declarar en el método la sentencia. 

Las excepciones comprobadas deben ser declararas o de lo contrario el código no va a compilar.

COMO MANEJAR CODIGO CON EXCEPCIONES  (try / catch)

El lenguaje Java me permite averiguar la excepcion que se generó y como debe resolverla, con manejadores. Si el manejador es invocado despues de que el codigo ha efectuado una parada en la que ocurre una excepcion entonces el código que contiene el manejador es ejecutado permitiendo continuidad del programa.

El manejador se efectua mendiante la combinacion de sentencias try {} catch {}:

try{
     // curso normal del codigo;
     //codigo ejecutable en cualquier circunstancia;
}
catch (IOException ex_01){
     //codigo para manejar una excepcion de tipo IOException presente en el programa;
}
catch (Exception ex_02){
     //codigo para manejar una excepcion de tipo Exception presente en el programa;
}

Como ven pueden anidarse diferentes tipos de catch para manejar las excepciones presentes en el programa, aqui puede entenderse la logica del curso, el JVM interpretará el primer catch para manejar la excepcion, sino lo puede manejar entonces seguira con el segundo y asi sucesivamente. Debe tener presente ordenar los manejadores catch para poder efectuar las capturas de las excepciones lo mas óptimo posible.

LA SENTENCIA FINALLY

Java tambien tiene la sentencia finally:

try{
     // curso normal del codigo;
     //codigo ejecutable en cualquier circunstancia;
}
catch (IOException ex_01){
     //codigo para manejar una excepcion de tipo IOException presente en el programa;
}
finally{
     //codigo para manejar una excepcion de tipo Exception presente en el programa;
}

La sentencia finally define un bloque de código que siempre se ejecuta, independientemente se efectué la captura de la excepción o. no.

De la unica forma en que una sentencia finally no se ejecute seria en una JVM caida o cerrada ( por ejemplo la ejecucion del método System.exit).

EXCEPCIONES MAS COMUNES

  • NullPointerException: indica que se esta tratando de acceder a un atributo o un método de un objeto que no hace referencia a nada o null.
  • FileNotFoundException: Esta excepcion se genera por intentar leer datos de un archivo que no existe.
  • NumberFormatException: Indica que el formato del numero que esta leyendo no corresponde a uno válido.
  • ArithmeticException: Mas comunmente cuando se hace una division por cero (x/0).
  • SecurityException: Normalmente se genera en Browsers ( Navegadores de internet) por applets de Java que intentan ralizar una operacion
PRINCIPIOS DE PROGRAMACION EN JAVA

Java es un lenguaje orientado a objetos, esto significa que debe cumplir con las especificaciones del paradigma de la programacion orientada a objetos:
  • Encapsulación/li>
  • Herencia
  • Polimorfismo
  • Abstraccion
  • Seguridad
Cuando se crea un programa en java lo primero es que esta un programa compuestos de clases. Al igual que un diseñador usa prototipos para usar cuantas veces quiera para sus diseños y productos, del mismo modo un programador usa las clases como prototipo para manipular eventos, métodos y atributos.

Las clases a diferencia de las variables, no se declaran, se instancian. Instanciar una clase es crear un objeto del tipo clase que tiene una referencia en la memoria de la CPU de todos sus métodos y atributos, su propósito es tener entrada de datos y generar salidas de datos. Para los que no comprenden que son los métodos y los atributos su homólogo en otras prácticas serian respectivamente las funciones y los elementos ( o también variables si así se quiere).

Instanciar una clase es crear un objeto del tipo clase que tiene una referencia en la memoria de la CPU de todos sus métodos y atributos

COMO SE DECLARAN LAS CLASES

Las clases tienen modificadores que indican su estado global que puede ser public, private, protected. la palabra Class es reservada del lenguaje java para indicar que se esta definiendo una clase. La clase puede nombrarse 

<modificador> class <NombreClase>
{
     atributos;
     Constructores();
     metodos();
}

Tenga en cuenta que si esta definiendo una clase, solo puede haber una clase principal pública por archivo fuente, igualmente una sola llamada al método main por clase publica. Pero una clase no necesariamente debe definir el metodo main, la clase puede ser llamada por otra clase o desde otro archivo. En el mismo archivo fuente solo puede coexistir una clase publica y varias privadas, pero no mas de una clase Publica.

Ejemplo de clase publica sin método main:
archivo Greetings.java

public class Greetings {
    public static void greeting()
    {
        System.out.println("Saludos programador novato");
    }
}

Ejemplo de una clase publica con metodo main:
archivo Saludo.java

public class Saludo {

    public void setSaludo(){
        Greetings text = new Greetings();
        Greetings.greeting();
    }

    public static void main (String args[])
    {
        Saludo var1 = new Saludo();
        var1.setSaludo();
    }
}

Nótese qué una clase pública que esta en el archivo Greetings.java contiene un método para poner en pantalla un mensaje de texto. La clase Greeting es instanciada por un método en el archivo Saludo.java y llama al métodoGreeting contenido en la clase Greetings.

Luego desde el método main se instancia la clase Saludo y se invoca al método setSaludo(), el resultado sera poner en la linea de comando un mensaje de texto:

     Saludos programador novato

COMO SE DECLARAN ATRIBUTOS

<modificador> <tipo> <nombreAtributo> [= <valor_inicial>];

Los atributos son los homólogos de las variables, se decaran y pueden ser de cualquier identificador permitido, incluso objetos.

El modificador usado en los atributos principalmente es del tipo public o private.

El tipo de atributo puede ser de variable primitiva o de cualquier objeto.

Por seguridad los atributos se declaran como privados y se acceden a ellos y manipulan por medio de los métodos como set_ (denominados (setters) y get_ (denominados getters).

ejemplo de atributos
public String texto1;
public int valor1;
public float variableArea;
private boolean colorAzul;

ejemplo de atributos declarados
public boolean examenAprobado = false;
public int area=500;
public float pi=3.141592F

En atributos del tipo primitivo float o double al final del valor debe escribirse en mayúscula que clase de punto flotante se trata, F parafloat y D para double.

ejemplo de varios atributos del mismo tipo
public float radio, area, tamaño, volumen, densidad;

COMO SE DECLARAN METODOS

<modificador> <tipo_retorno> <nombre> ( <argumentos>) {
     <sentencia>;
}

Los métodos son homólogos de las funciones, en la programación orientada a objetos se usan los métodos como un proceso con el cual se cambia de valor los atributos o por el cual se tiene datos de entrada para procesar una salida de datos. 

Los métodos usan principalmente como modificador de acceso el public, protected y private.

El parámetro tipo_retorno indica el tipo de valor que devuelve el método, puede ser del tipo primitivo, array o objeto. El método debe devolver un tipo de retorno como el especificado, de lo contrario encontrará error al compilar. Para devolver un valor dentro de un método debe utilizarse la sentencia return.

La lista de argumentos son atributos o valores que se le pasan al método para poder trabajar, deben estar denotados por el tipo de valor e identificador  y separados por comas.

CONSTRUCTORES

Un constructor es parecido a los métodos, pero difiere de los métodos en que estan diseñados para inicializar una instancia. Tiene caracteristicas que los difieren de los métodos:

  • Deben tener el mismo nombre de las clase
  • Solo pueden tener como tipo de atributo public, private, protected.
  • Usan los mismos argumentos que los métodos.
  • No tienen valores de retorno.
  • No tienen capacidad de herencia.
  • Pueden declararse con parámetros.
COMO SE DECLARAN CONTRUCTORES

Antes de declarar un constructor, si el código no lo tiene definido, el lenguaje Java se encarga de suministrarlo. El constructor predeterminado al ser creado por el lenguaje no tiene argumentos y su cuerpo esta vacio.



ENCAPSULACIÓN

Es el termino usado para describir el como se da una interfaz al usuario con acceso limitado, ocultando ciertos elementos de la implementación de una clase sin perder la función de la clase o la interfaz.

Su propósito es el de ocultar datos, ya que la información de los atributos no debe tocarse directamente. La encapsulación de atributos dentro de una interfaz publica, puede realizarse cambios en estos dentro de la interfaz sin afectar el código.


COMO ESTA ORGANIZADO UN ARCHIVO FUENTE

Un archivo fuente ( extensión .java) esta organizado con el siguiente formato:

package <declaración del paquete>;

import <declaración de importación>;

public class <declaración de clase>{

     atributo <atributos>;
     método <declaración métodos>;
     <sentencia_1>;
     <sentencia_2>;
     <sentencia_3>;
     <sentencia_n>;
     <sentencia_...>;
}

El archivo fuente debe estar organizado siempre en este orden, es decir, la sentencias de importación deben preceder a la declaración de clases y si se declara un paquete, este debe preceder a la declaración de importaciones y a las de clases.

Es importante recalcar que cuando se escribe un programa en Java el nombre del archivo fuente (.java) debe tener el mismo nombre y nomenclatura ( mayúsculas y minúsculas) que la clase pública que contiene.

De todas las clases que contiene el archivo fuente solo una puede declararse como pública, el resto pueden usar otro tipo de atributo. Pero si un archivo no tiene una clase publica declarada el archivo fuente puede tener el nombre que quiera.

La sugerencia es siempre un archivo fuente por cada declaración de clase y el nombre del archivo igual al nombre de la clase.

COMENTARIOS

Para hacer una breve descripción de una parte de nuestro código podemos incluir texto que el compilador no va a leer, pero que si estará presente siempre en el código para ayudarnos a entender después  lo que hemos hecho. Se usan dos backslash "//" para comenzarla linea de comentario, que en un editor de texto que identifique código Java lo sombreará en color Gris.

//Linea de comentario
//Segunda linea de comentario

Cuando una sola línea de comentario no es suficiente puede usarse un método de comentario de varias lineas que comienza con un backslash y un asterisco y termina en posición opuesta así: "/*   comentario*/". 

/*comentario de una linea*/

/*
comentario
de 
varias
lineas
*/

/*


CODIFICACIÓN DE ARCHIVOS FUENTE EN JAVA

Para escribir código en el lenguaje Java se usan convenciones que estan definidas como un estandar a la hora de fabricar programas:

  • Paquetes: los nombres de paquetes se escriben en minúsculas:
    package conjunto_universal.subconjunto.clases;
    package conjuntouniversal.subconjunto.*;
  • Clases: los nombres de clases deben ser escritos en letras minusculas, todas las palabras seguidas y la primera letra de cada palabra en mayuscula, esta forma de nomenclatura tambien es llamada lomo de camello o CamelCase en ingles:
    public class Barcos;
    class ContabilidadEmpresarial;
    class RecursosHumanos;
  • Métodos: Los metodos deben ser verbos escritas con la palabra inicial en minuscula y las siguientes palabras con la inicial en Mayuscula:
    balanceCuenta();
    insertarBuque();
    mostrarCuadricula();
    listarContenedores();
    insertarFactura();
    borrarFactura();
  • Variables: Deben escribirse en mayusculas y minusculas, con la inicial en minuscula, con la siguiente palabra con la inicial en mayuscula. Casi no se usan los signos de subrayado (_) y evite el signo de dolar ($).
    clienteActual;
    contenedorNombre;
    nombreEmpleado;
    cargoEmpleado;
    deptoEmpleado;

  • Constantes: Las constantes deben escribirse enteramente en mayusculas y separando las palabras mediante underscore (subrayado).
    MAX_NUM_CONTENEDORES;
    MAX_PESO_PANAMAXMAX;
    MAX_NUDOS;

  • Estructuras de Control: cuando las sentencias forman parte de una estructura de control de flujo  como un for, while, es necesario incluirlas en un paquete de sentencias con los corchetes ({}) aunque solo tengan una linea de código:
    for ( i=0; i<MAX_NUM_CONTENEDORES; i++){
    sentencia;
    sentencia;
    }

  • Espacios: Los espacios son usados para entender mejor el código y distinguir el principio y el fin de las estructuras de control usese de acuerdo a la estructura de control las separaciones por sangria necesarias, por lo regular no son mas de 4. Puede variar de acuerdo a las convenciones usadas.
  • Comentarios: Use comentarios de una linea o varias, puede inclusive usar JAVADOC. No hay restricción de acuerdo a la forma en que deben estar escritos los comentarios.


CONCEPTO DE PAQUETE

La mayoría de los sistemas de computo son de grandes dimensiones, Java usa muchas de las características del lenguaje UML para definirlas en su lenguaje para hacer mas entendible grandes cantidades de código y estructurarlo para ofrecerlo como una orientación al servicio y a la calidad del software a los clientes.

UML incluye el concepto de paquete para organizar en conjuntos de código el que una clase pieda contener otras clases  u otros paquetes que formen una jerarquia. Una practica de programadores UML es organizar los paquetes por similitud semántica.

Para interpretar el concepto de paquete que proviene de UML, Java porporciona la sentencia package como una forma de agrupar clases relacionadas.

DECLARACION DE UN PAQUETE

package <nombre_paquete_superior>.<nombre_paquete>;

Digamos que estamos declarando el paquete de una compañia de transporte y tambien un paquete para identificar los vehiculos de la compañia.

//definición de paquete transporte como el conjunto universal
package transporte;

//definición del paquete vehículos como subconjunto de transporte
package transporte.vehiculos;


Cualquiera que sea la motivacion, todo aquel ingeniero, aficionado o programador que desee darle un valor a sus conocimientos debe memorizar el siguiente lema:

" El conocimiento no cabe en un frasco, pero si en un diploma"

Así estará seguro que si desea darle un valor agregado a sus conocimientos o tener un motivo por el cual aumentar la remuneración por sus esfuerzos por ser mas competitivo y productivo en el ambiente laboral, por ser mas productivo y con pasion por lo que hace, no lo hara por cualquier diploma.

Hay toda clase de estudiantes, los que no pueden asistir a un curso presencial, los que si pueden en horarios normales, los que pueden asistir a clase en horarios extendidos, los que pueden estudiar con un tutor, etc...

Pero aun asi las preguntas importantes son  ¿donde estudiar? y ¿que estudiar?, los que deseen aumentar sus habilidades en tecnologia, pueden tomar diferentes orientaciones, certificaciones oficiales hay para todas las tecnologias por nombrar unas:

  • SUN
  • Cisco
  • Microsoft
  • F5
  • Juniper
  • Oracle
Cada una de las casas tienen diferentes certificaciones, en nuestro caso nombraremos las certificaciones de SUN disponibles ya que es lo que nos importa en nuestro blog de estudios sobre Java. Cualquier persona que desee tener conocimientos sobre java y que quiera certificarlos debe tener en su pared un diploma de la Sun Microsystems. La imagen 1 muestra los diferentes escalamientos que tienen las certificaciones.


Fig 1. Escalamientos en certificaciones Sun de Java

Entre las certificaciones disponibles tenemos la siguiente lista:

  • Sun Certified Enterprise Architect (SCEA)
  • Sun Certified Mobile Application Developer (SCMAD)
  • Sun Certified Developer For Java Web Services (SCDJWS)
  • Sun Certified Business Component Developer (SCBCD)
  • Sun Certified Web Component Developer (SCWCD)
  • Sun Certified Java Developer (SCJD)
  • Sun Certified Java Programmer (SCJP)
  • Sun Certified Java Associate (SCJA)

Sun Certified Java Associate (SCJA)

Esta certificacion provee una entrada a la carrera en  desarrollo de aplicaciones y administracion de proyectos de software usando Java como nenguaje y tecnologia. Este certificado validad los conceptos de la Orientacion a Objetos, conocimiento general sobre el lenguaje Java, sus plataformas y Tecnologias.

Para obtener este certificado el estudiante debe completar el examen CX-310-019:

Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0 (CX-310-019)

Sun Certified Java Programmer (SCJP)

Este certificado es fundamental para programadores interesados en demostrar proficiencia en los fundamentos del lenguaje de programación Java.
 
- Sun Certified Programmer for the Java Platform, Standard Edition 6 (CX-310-065) - NEW!
- Upgrade Exam: Sun Certified Programmer for the Java Platform, Standard Edition 6 (CX-310-066) - NEW!
- Sun Certified Programmer for the Java Platform, Standard Edition 5.0 (CX-310-055)
- Upgrade Exam: Sun Certified Programmer for the Java Platform, Standard Edition 5.0 (CX-310-056)


Sun Certified Java Developer (SCJD)

Esta es una certificación para desarrolladores en demostrar avanzados conceptos usando Java SE. Los candidatos deben completar dos fases, la primera una asignacion como un examen de conocimientos puestos en practica y deben ser SCJP certificados de cualquier edicion.
 
- Sun Certified Developer for the Java Platform, Standard Edition: Assignment (Step 1 of 2) (CX-310-252A)
- Sun Certified Developer for the Java Platform, Standard Edition: Essay (Step 2 of 2) (CX-310-027)
- Sun Certified Developer for the Java Platform, Standard Edition: Assignment Resubmission (CX-310-252R)

Sun Certified Web Component Developer (SCWCD)

Este certificado es para desarrolladores especializados en el desarrollo de aplicaciones JSP (JavaServer Pages) y Servlets usados en servicios web y contenidos web dinámicos.

Los candidatos podran obtener este certificado completando el examen, y deben ser SCJP certificados.

 
- Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5 (CX-310-083)
- Upgrade Exam: Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5 (CX-310-084)

Sun Certified Business Component Developer (SCBCD)

Esta certificación es para componentes de desarrollo en tecnologias para JavaBeans (EJB), para desarrolladores que sean responsables de diseñar, probar, desarrollar, implementar e integrar aplicaciones EJB.

Los candidatos podran obtener este certificado completando el examen, y deben ser SCJP certificados.

 
- Sun Certified Business Component Developer for the Java Platform, Enterprise Edition 5 (CX-310-091) - New!
- Upgrade Exam: Sun Certified Business Component Developer for the Java Platform, Enterprise Edition 5 (CX-310-092) - New!

Sun Certified Developer For Java Web Services (SCDJWS)

Este certificado es para desarrolladores que quieran crear aplicaciones para servicios Web usando componentes desarrollados en Tecnologia Java.

Los candidatos podran obtener este certificado completando el examen, y deben ser SCJP certificados.

 
- Sun Certified Developer for Java Web Services 5 (CX-310-230) - NEW!
- Upgrade Exam: Sun Certified Developer for Java Web Services 5 (CX-310-231) - NEW!


Sun Certified Mobile Application Developer (SCMAD)

Este certificado es para desarrolladores que crean aplicaciones móviles usando tecnologias Java para celulares, SmartPhones y dispositivos inteligntes.

Los candidatos podran obtener este certificado completando el examen, y deben ser SCJP certificados.

 
- Sun Certified Mobile Application Developer for the Java Platform, Micro Edition, Version 1.0 (CX-310-110) - New!

Sun Certified Enterprise Architect (SCEA)

"El acto de conseguir un certificado te hace un mejor arquitecto" (Humphrey Sheil, CTO, SCEA, and SCEA examiner)

Esta certificación es para arquitectos de empresa responsables de diseñar aplicaciones Java con un enfasis en el uso de la tecnologia JEE para crear diseños seguros, flexibles y escalables.

La certificación SCEA “significa que su poseedor puede manejar diseños avansdos y tener roles de responsabilidad en crear aplicaciones. El candidato a esta certificación debe demostrar un profundo conocimiento en el entendimiendo y el uso de apropiados usos del diseño y arquitectura de aplicaciones modernas.

El proceso

Para obtener este certificado el candidato debe completar tres niveles: Examen multi nivel de conocimientos, una asignación y un desarrollo.

 
- Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5 (Step 1 of 3) (CX-310-052)
- Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5: Assignment (Step 2 of 3) (CX-310-301A)
- Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5: Essay (Step 3 of 3) (CX-310-062)
- Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5: Assignment Resubmission (CX-310-301R)
- Upgrade Exam: Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5 (CX-310-053)

DONDE ESTUDIAR EN LATINOAMERICA

En Latinoamerica podemos contar con el instituto Formacion Digital América, el cual es un instituto que nos ofrece entrenamiento en linea y bien documentado para los principales certificados de Java para las plataformas JSE, JME y JEE.

Ofrecen para los paises de Colombia, Mexico, Panamá, Ecuador y Venezuela.

http://www.formaciondigitalamerica.com/djo/



INTRODUCCIÓN

Para escribir sus primeras lienas de código java tenga listos e instalados los siguientes paquetes de software

  • Netbeans ( como IDE) para escribir el código con ayudas visuales y depuracion.
  • Notepad++ (como editor de texto) para escribir codigo sin ayudas visuales.
  • JRE Version 6 update 20 para la plataforma que este usando, en mi caso Windows XP.
CONFIGURANDO MI PRIMER PROYECTO DE SOFTWARE

Netbeans es un entorno de desarrollo muy robusto, para mi gusto es el mejor orientado al desarrollo de apliaciones java, el criterio de otros programadores puede variar segun la experiencia y el gusto.

Al instalar el Netbeans y lo ejecutamos por primera vez nos mostrará una pantalla de carga inicial como la de la figura 1.


Fig 1. Pantalla de inicio de NetBeans

Lo primero que se hace es configurar en Neatbeans un proyecto, para ello vamos a crear un proyecto usando la siguiente ruta en los menus "File > New Project" o damos click al boton nuevo proyecto . Nos aparecerá un asistente de dos pasos, en el paso uno indicamos la categoria de proyecto y el tipo de proyecto que estaremos trabajando. En nuestro caso la categoria de proyecto a escoger sera el de "Java" y el tipo de proyecto sera "Java Application" como se ilustra en la figura 2.

Escoger un proyecto de categoria Java y un projecto como Java Application
Fig 2. Escogiendo Proyecto y Categoria para Aplicacion Java

En el segundo paso Indicamos el nombre del proyecto (Project Name) como "JavaTutorial01", podemos cambiar la ubicación del proyecto (Project Location), escoger si va a usar un folder dedicado a las librerias "Use Dedicated Folder for Storing Libraries". Este campo no lo vamos a usar en nuestro caso, vease la figura 3.


Fig 3. Editando el proyecto

Una vez completado el asistente, tendremos nuestro Netbeans configurado para trabajar con nuestro proyecto, el cual estaremos usando en toda nuestra linea de aprendizaje de java.

Ahora en el netbeans valla a la ruta "File > New File" o haga click en el botón  para iniciar el asistente y  para nuestro proyecto previamente creado (JavaTutorial01) creará un nuevo archivo tipo "Java Class" (fig 5). Opte por ponerle el nombre "HelloWorld" al archivo, mantenga las demas configuraciones intactas, en la opción Package Escriba "FirstStepsInJava" como en Figura 6.


Fig 5 Escogiendo un nuevo archivo Java de clases.


Fig 6. Editando el nuevo archivo

MIS PRIMERAS LINEAS DE CODIGO

Una vez creado el proyecto y el archivo fuente ahora podemos poner nuestras lineas de código. Java comprende los archivos con línea de codigo de bits (unos y ceros que comprenden java) tipo java, para identificarlos todos los archivos fuente tienen la extension .java, en nuestro caso. En netbeans en el panel izquierdo está la pestaña "Projects" la cual muestra los archivos del proyecto, podemos ver en la figura 7 todos los archivos fuente que existen en el paquete contenido en el proyecto con la extension ".java".


Fig 7. Archivos fuente del proyecto.


Fig 8. Panel de escritura de lineas de código en Netbeans

En el panel derecho escribiremos las siguientes lineas de código, deben quedar similar a la ilustracion 8:

package FirstStepsInJava;

public class HelloWorld {
    public void setMessage(){
        System.out.println("Hello World");
    }

    public static void main (String args[])
    {
        HelloWorld hola = new HelloWorld();
        hola.setMessage();
    }
}

COMPILANDO Y EJECUTANDO EL CÓDIGO FUENTE

Java interpreta el codigo contenido y lo compila, es decir, lo interpreta y lo convierte en un archivo que cualquier maquina virtual de java (JVM) puede ejecutar en cualquier plataforma, los archivos ejecutables de java tienen la extension .class.

Para hacer que Netbeans compile el archivo valla al menu "Run > Run Main Project" o haga click en el boton el programa va a ejecutar el código contenido en el archivo fuente si no tiene excepciones en tiempo de ejecucion o errores de código. En nuestro caso, el programa solo pondra en pantalla un mensaje que dice "Hello Word".







INTRODUCCION

Antes de comenzar a programar en Java debe tener en cuenta una serie de pasos previos:

  1. Debe saber como va a desarrollar su aplicacion y para que clase de usuario final esta dirigido. En un entorno de trabajo  ideal deberá tenerlo en cuenta
  2. Debe saber que el producto o servicio que va a prestar como un desarrollo de java debe ser seguro, confiable y orientado a las necesidades y especificaciones del cliente.
  3. Mantenga un control de calidad del su producto, solo asi podra ser competitivo en el mercado del software, si trabaja solo le sera mas facil, si trabaja en un equipo asegurese de poder liderarlo o de tener un lider y una buena herramienta de colaboracion y centralizacion del código.
  4. Contrario a lo que muchos otros programadores digan, yo le aseguro que si va a escribir un programa que en un futuro podra vender y prestar el servicio por su mantenimiento y mejoras asegurese de escribir comentarios en su código, no querra peder despues tiempo y dinero tratando de encontrar la linea de código que tenia la inconsistencia y darse cuenta dias después que la tenia delante suyo.
  5. Contar con las herramientas adecuadas para la escritura, depuracion y ejecución del software.
  6. Java instalado en la cpu en que se va a ejecutar el script.
PLATAFORMA

Java cuenta con distribuciones para varias plataformas, entre estas la Windows, Linux en sus diferentes distribuciones, BSD en sus diferentes distribuciones y Mac Os X.


AMBIENTE DE DESARROLLO

Existen diferentes ambientes de desarrollo todos muy robustos, mencionare algunos de los más populares que puede usar a la hora de programar en Java, personalmente programo en Netbeans Version 6.8 para todos mis proyectos y los tutoriales:

  • Netbeans (Sun Microsystems "ahora oracle").


  • Jdeveloper (Oracle).


  • eclipse (Open Source).


  • easyeclipse (distribucion de eclipse de facil instalacion).


  • pulsar (distribucion de eclipse para desarrollo de aplicaciones móviles).


Cual quiera que vallla a usar a la hora de desarrollar puede usarla en cualquiera de las plataformas disponibles, (indows, Linux y Mac).

DISTRIBUCION DE JAVA  DISPONIBLES

Las distribuciones de Java disponibles van dependiendo del tipo de aplicación al cual esta orientado a desarrollar, puede ser desde una Java Card, pasando por una aplicacion de celular, hasta una aplicacion robusta cliente - servidor o una aplicacion web, a continuación listo las distribuciones de Java estables más recientes y las plataformas a las cuales estan disponibles: