La siguiente colección de artículos tienen como objetivo formarte y prepararte para lograr la certificación Java OCA (Oracle Certified Associate Java) para la última versión disponible de JavaSE 8.
Las principales fuentes utilizadas para elaborar estos artículos son los libros de referencia para la preparación de la certificación:
Si todavía no conoces el lenguaje Java pero tienes algo de conocimiento de otros lenguajes de programación, esta es tu oportunidad de aprenderlo de una manera amena.
Si ya conoces el lenguaje Java, pero nunca te has atrevido a preparar la certificación porque nunca has tenido el tiempo suficiente para prepararlo, aquí te ayudaremos a reducir el tiempo y consultar todas tus dudas.
Java pero frecuentemente olvidas algunas de las características del lenguaje o dudas a la hora de desarrollar un nuevo programa. Estos artículos te servirán como Si ya dominas el lenguaje guía de referencia de las funcionalidades del lenguaje que necesitas recordar para trabajar a diario y ser más productivo.
Introducción
Java es un lenguaje de programación sencillo y orientado a objetos cuyo uso está extendido en todo el mundo siendo el lenguaje más popular actualmente. Las características del lenguaje que le han permitido llegar al éxito son:
: El compilador Java traduce cada fichero fuente a código de bytes (Bytecode), este código es interpretado por cualquier máquina que tenga instalado un intérprete conocido como Portable y Multiplataforma JVM (Java Virtual Machine).
Estructura
En un programa Java las clases son el elemento básico de construcción. Una clase nos permite agrupar una serie de partes y características comunes.
Comentarios
Para hacer más legible nuestro código es posible añadir comentarios. Estos pueden aparecer en casi cualquier parte dentro de los ficheros fuente que definen nuestras clases.
Para un comentario de una única línea se utiliza el carácter "//" al comienzo de la línea.
// Comentario hasta fin de línea
Para comentario de múltiples líneas se utiliza el carácter "/*" al comienzo de la primera línea comentada y los caracteres "*/" al final de la última línea.
/*Comentario separado en múltiples líneas */
Clases vs Archivos
Lo más común es que cada clase este definida en un archivo .java con el mismo nombre que la clase.
Sin embargo, es posible tener dos clases en el mismo archivo .java aunque solamente una de ellas puede tener modificador de acceso public y el nombre del archivo .java debe coincidir con la clase declarada public. En caso contrario se producirá un error de compilación
Método Main
Un programa Java comienza la ejecución en el método main(), en otras palabras, es la puerta de entrada al inicio de un proceso java el cual será gestionado por la JVM (Máquina Virtual de Java).
- El modificador de acceso del método debe ser public.
- El modificador de no acceso debe ser static.
- El método no debe retornar ningún valor, es decir, especifica tipo de retorno void.
- El nombre del método debe ser main.
- Debe aceptar un parámetro de tipo array de String que puede contener 0 o N parámetros.
- El nombre del parámetro puede ser cualquier identificador permitido según las reglas.
para Reglascompilar una clase java:
- Utilizar el comando "javac" incluido en la JDK (Java Development Kit).
- El archivo debe tener extensión .java
- El nombre del archivo debe coincidir con el nombre de la clase pública.
- El resultado será un archivo de bytecode (instrucciones que la JVM sabe ejecutar) con el mismo nombre y extensión .class
para Reglasejecutar una clase java:
· Utilizar el comando "java" más el nombre de la clase sin extensión y la lista de parámetros que queramos añadir.
· Todos los parámetros serán reconocidos de tipo String.
javac ClasePrueba.java java ClasePrueba Parametro0 Parametro1 ... ParametroN
Declaración de package e imports
Dado que existen miles de clases, es necesario organizarlas de algún modo. Java organiza las clases en paquetes, que no son más que agrupaciones lógicas.
- Los nombres de los paquetes son jerárquicos y las reglas para nombrarlos son las mismas que aplican al nombrado de variables.
- Los import son sentencias que dicen al compilador en qué paquete buscar para encontrar una Clase que va a ser utilizada dentro de la clase que lo importa.
- Las clases en el mismo paquete son normalmente importadas juntas, para ello es necesario utilizar un sentencia import con comodín (wildcard).
El "*" es un comodín que empareja todas las clases incluidas en el paquete indicado.
para Reglasusar import con comodines:
- Un comodín solo empareja nombres de clases, es decir, no es recursivo.
- Solamente se puede usar un "*" comodín para cada import y debe estar al final.
- Solamente se pueden emparejar clases, no es válido para emparejar métodos ni campos.
Import redundantes
Hay un paquete especial en Java "java.lang" que es automáticamente importado. Se puede importar explícitamente porque no provoca ningún problema pero es innecesario.
También es redúndate si una clase es importada y adicionalmente una sentencia import con comodín también incluye a esa clase.
Otro caso redundante es importar una clase que está en el mismo paquete que la clase que estamos definiendo.
Conflictos de Nombres
En ocasiones queremos utilizar clases con el mismo nombre pero que están ubicadas en paquetes diferentes, la gestión de paquetes de Java nos permite hacerlo pero con ciertas precauciones.
Cuando dos import con comodín emparejan el mismo nombre de clase el compilador devuelve un error indicando "El tipo es ambiguo".
Para corregirlo hay dos opciones:
- Importar explícitamente un nombre de clase porque estas sentencias tienen prioridad sobre los sentencias import con comodines.
- No añadir ninguna sentencia import y utilizar los cualificadores completos de clases.
Creando Objetos
Nuestros programas no serían capaces de hacer nada útil sin la posibilidad de crear nuevos objetos. Un objeto es una instancia de una clase con un estado independiente del resto de objetos.
Son utilizados para crear instancias de una clase. El propósito del constructor es inicializar los campos.
Random r = new Random()
Random() es un constructor de la clase, lo que es en realidad es un tipo de método especial que utilizamos para crear nuevos objetos.
Reglas para definir un constructor:
- El nombre del constructor debe ser igual que el nombre de la clase.
- El constructor no tiene tipo de retorno. Es decir, si vemos un método con el mismo nombre de la clase y con tipo de retorno, este será un método pero no un constructor.
Si no se especifica ningún constructor el compilador proporcionará uno por defecto y sin parámetros.
Bloques de inicialización
Son bloques de código que aparecen entre corchetes {} fuera del ámbito de un método y en cualquier parte de la clase.
para el Reglasorden de inicialización de los campos:
- Los campos y los bloques de inicialización son ejecutados en el orden que aparecen
- El constructor se ejecuta después de que todos los campos y bloques se han ejecutado.
Las aplicaciones Java contienen variables y datos de tipo Primitivos o Referencia.
Podemos ver agrupados todos los tipos primitivos existentes en el siguiente gráfico.
Para números enteros el tipo por defecto es int. Para cambiar el tipo por defecto a long se debe usar la letra 'l' o 'L'. Ej: 123L
Para números decimales el tipo por defecto es double. Para cambiar el tipo por defecto a float se debe usar la letra 'f' o 'F'. Ej: 123.45F
Por defecto la base utilizada es decimal pero podemos utilizar otras alternativas:
Adicionalmente a partir de Java 7 es posible añadir"_" guiones bajos a los literales numéricos para facilitar la lectura. Reglas de usos de "_":
Tipos Referencias
Un tipo referencia se refiere a un objeto (una instancia de la clase)
A diferencia de los tipos primitivos, las referencias apuntan a un objeto almacenando en memoria, para ello guardan la dirección en la que el objeto está localizado.
Regla para asignar valor a una variable de tipo Referencia:
- Asignar un objeto del mismo tipo.
- Creando un nuevo objeto usando la palabra reservada "new".
Diferencias Tipos primitivos vs Tipo referencia
- Tipos Referencias pueden tener asignados un valor "null". Significa que no están apuntando actualmente a ningún objeto.
- Tipos Primitivos dan un error de compilación si intentas asignar el literal "null".
- Tipos Referencias se pueden usar para llamar a métodos cuando no tienen asociado el valor null.
- Tipos Primitivos no tienen métodos declarados a los que poder llamar.
- Todas las clases definidas con Java empiezan con mayúscula (es una convención aunque no es obligatoria para clases propias).
- Todos los tipos primitivos tienen nombres en minúsculas.
Solo necesitas 10 minutos para saber si has asimilado correctamente los temas tratados.