= Java OCA Capítulo 1 == Entendiendo la estructura de una clase Java === comentarios * 1 línea://esto es un comentario de una sola línea * múltiples líneas /* un comentario * con múltiples * líneas */ * javadoc: /** un comentario javadoc * @author Miguel Angel Torres */ === clases VS ficheros * cada clase java se define en su propio fichero .java * el nombre de la clase ha de coincidir con el nombre del fichero * puedes poner 2 o más clases, pero solo 1 puede ser pública y esta es la que ha de coincidir en nombre con el fichero == escribiendo un método main() * el método ''main()'' es el puente entre el proceso de arranque de Java, gestionado por la JVM y el códido Java del programador * compilación y ejecución:$ javac MiClase.java $ java MiClase * para compilar es necesario: * que el fichero tenga extensión .java * que el nombre de la clase coincida con el nombre del fichero (case sensitive) * esto genera un código compilado bytecode, interpretable por cualquier JVM (multiplataforma) * para ejecutar el código compilado, se omite la extensión (.class) * ''public static void main(String[] args)'' * ''String[] args'' --> ''String args[]'' --> ''String... args'' son expresiones equivalentes == Declaraciones de paquetes e importaciones * Java pone las clases en paquetes (''package''), agrupaciones lógicas. * ''import'' le dice a Java en que paquetes ha de buscar clases * los paquetes siguen un orden jerárquico de carpetas * si un paquete empieza por ''java'' o ''javax'', son clases que pertenecen al JDK del propio Java * los nombres de los paquetes pueden contener números y letras * //en el examen OCA no se usarán nombres de paquetes inválidos (aunque si nombres de variables inválidos)// * las clases del paquete ''java.lang'' se incluyen automáticamente sin tener que realizar un ''import'' de dicho paquete === comodines (wildcards) * se puede usar un //shortcut// de ''import'', usando comodines (''*'') para importar todas las clases de un paquete import java.util.*; === importaciones redundantes import java.lang.System; // redundante, java.lang se carga automaticamente import java.util.Random import java.util.* // Esta o la anterior son redundantes... con esta última incluimos Random y todas las de java.util (no a la inversa) === conflictos de nombres === creando un nuevo paquete === Formateo de código en el examen == Creando objetos === constructores === leyendo y escribiendo variables de objeto === bloques inicializadores de instancia (Instance Initializer Blocks) == Diferencia entre referencias a objetos y primitivas === tipos primitivos === tipos de referencia === principales diferencias == Declarando e inicializando variables === declaraciones múltiple de variables === identificadores == Entendiendo alcance de las variables == Ordenando los elementos de una clase == Destruyendo objetos === garbage collection === finalize()