Fundamentos de Programación Java: Estructura, Ejecución y Componentes Clave
Enviado por Comunidad Wikiteka y clasificado en Informática
Escrito el en
español con un tamaño de 7,15 KB
Fundamentos de Programación Java
Java: El proceso de desarrollo en Java implica la transformación del código fuente a un estado compilado (aproximadamente 80% del proceso), generando bytecode, que es portable. Posteriormente, este bytecode es interpretado (aproximadamente 20% del proceso) para producir el código objeto final.
Conceptos Clave de Java
- Referencias: En C++, se habla de construcción; en Java, se trabaja con referencias. Por ejemplo,
Video v2 = v1;crea una referencia y copia la referencia de v1 a v2. - Bucles `foreach`: La sintaxis
for(int i:nums)asigna secuencialmente cada valor de `nums` a la variable `i`. - JRE (Java Runtime Environment): Incluye la máquina virtual y las clases necesarias para ejecutar aplicaciones Java.
- SDK (Software Development Kit): Contiene las herramientas para compilar código Java y también incluye el JRE.
- Modificadores:
- `final`: Indica inalterabilidad. En atributos, se comporta como una constante; en parámetros, limita a solo lectura; en métodos, previene la redefinición.
- `static`: Define un miembro como global a la clase, compartido por todos los objetos de esa clase.
- Paquetes: Sirven para organizar clases y almacenar los archivos `.class` que contienen el bytecode. Permiten la creación de subpaquetes, y se utiliza `import nombre_paquete.*` para importar todas las clases de un paquete o `import nombre_paquete.NombreClase` para una clase específica.
- Arrays:
- Siempre son dinámicos y se manejan mediante referencias. Son considerados objetos.
- La declaración
int array[];define una referencia. La asignaciónarray = new int[5];reserva memoria. - Para arrays de objetos:
Clase obj[];crea referencias.obj = new Clase[tam];crea referencias a objetos en el array.obj[i] = new Clase();instancia cada objeto.
- Métodos: A diferencia de C, donde se decidía explícitamente el paso por valor o referencia, en Java los tipos primitivos se pasan por valor y los objetos por referencia.
Manejo de Excepciones
El manejo de excepciones se realiza mediante bloques:
- `try`: Contiene el código que podría generar una excepción.
- `catch`: Captura y maneja la excepción. Puede haber múltiples bloques `catch` para diferentes tipos de excepciones.
- `finally`: (Opcional) Código que se ejecuta siempre, independientemente de si ocurrió una excepción o no.
- `throws`: Se utiliza para indicar que un método puede lanzar una excepción sin controlarla internamente (ej.
throws IOException).
Entrada y Salida de Datos
- Datos Binarios: Se manejan con
InputStreamyOutputStream. - Datos de Texto: Se utilizan
ReaderyWriter. - Salida de Datos:
PrintStreames comúnmente usado. - Entrada/Salida de Ficheros:
- Binarios:
FileInputStream,FileOutputStream. - Texto:
FileReader,FileWriter.
- Binarios:
- Generación de Números Aleatorios: Se usa
(int) Math.random()*101para obtener un entero entre 0 y 100. - Modos de Acceso:
public,package(default),protected,private. - Entrada de Usuario: Se utiliza
Scanner variable = new Scanner(System.in);.
Herencia y Clases Abstractas
- Herencia: Similar a C++, pero Java no soporta herencia múltiple de clases.
- Clase Abstracta: No se pueden instanciar directamente. Son obligatorias si contienen al menos un método abstracto (declarado pero sin implementación, que debe ser provista por las clases derivadas).
Interfaces y Enumeraciones
- Interfaz: Define un contrato con métodos abstractos públicos por defecto (no `package`). Puede contener constantes `static final`. Una clase implementa una interfaz usando la palabra clave `implements`. No se pueden crear objetos de una interfaz, solo referencias. Permite la implementación múltiple de interfaces y puede heredar de otras interfaces.
- Enumeración (`enum`): Los objetos se crean al referenciar sus valores. Ejemplo:
enum Asignaturas{ADA,PLE,SIMR};. Se puede iterar sobre ellos:for(Asig a:Asig.values()).
Patrones y Colecciones
- Patrones de Expresiones Regulares: Se usan las clases `Pattern` y `Matcher`. Ejemplo:
Pattern p = Pattern.compile("[Hh][Oo][Ll][Aa]"); Matcher m = p.matcher(palabra); if(m.matches()){ return true; } else { return false; }. - Colecciones:
- `ArrayList`: Similar a un array de objetos pero dinámico, con índices asociados a los objetos. Ejemplo:
ArrayList primos = new ArrayList(); primos.add(j); System.out.println(primos.toString());. - `Hashtable`: Asocia objetos a palabras clave (claves). Ejemplo:
Hashtable tabla = new Hashtable(); tabla.put(clave, descrip);.
- `ArrayList`: Similar a un array de objetos pero dinámico, con índices asociados a los objetos. Ejemplo:
Interfaces Gráficas y Herramientas
- AWT y Swing: Conjuntos de librerías con componentes gráficos para la interacción con el usuario. AWT utiliza herramientas nativas, lo que puede generar inconsistencias visuales entre plataformas. Swing es una extensión de AWT, ofreciendo mejor presentación y adaptabilidad a diferentes sistemas operativos.
- Ant: Herramienta para automatizar tareas repetitivas como compilar, ensamblar y ejecutar código. Es utilizado por la mayoría de los Entornos de Desarrollo Integrado (IDE).
- Eventos: Un método de objeto que se dispara ante una acción específica. El objeto"escuch" el evento en tiempo de ejecución.
- `initComponents()`: Método generado por el IDE al añadir o modificar componentes gráficos (como en `JFrame`). No se recomienda modificar su código directamente.
- `LayoutManager`: Gestiona la disposición de los componentes gráficos según sus propiedades y formato (ej. `GroupLayout`).
- Ventajas: Simplifica la creación de interfaces, facilita la adición/eliminación de componentes y mejora la portabilidad al ajustar automáticamente la interfaz.
- Desventajas: Requiere práctica y puede resultar en código de interfaz voluminoso.
- `Runnable()`: Interfaz que debe contener un método `run()` para la ejecución de programas o hilos.