0% encontró este documento útil (0 votos)
7 vistas18 páginas

Programacion 1

El documento presenta un taller de programación en Java que incluye el diseño de diagramas de clases para sistemas de inventario, hospitalarios y de reservas de viajes. También se abordan conceptos fundamentales de Java, como la Máquina Virtual de Java (JVM), la compilación y ejecución de programas, y estructuras de control. Además, se explican temas como métodos estáticos y no estáticos, encapsulación y el uso de getters y setters.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas18 páginas

Programacion 1

El documento presenta un taller de programación en Java que incluye el diseño de diagramas de clases para sistemas de inventario, hospitalarios y de reservas de viajes. También se abordan conceptos fundamentales de Java, como la Máquina Virtual de Java (JVM), la compilación y ejecución de programas, y estructuras de control. Además, se explican temas como métodos estáticos y no estáticos, encapsulación y el uso de getters y setters.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 18

Taller # - PROGRAMACION 1

UDI: Universidad de Investigación y Desarrollo

30/04/2025

Nombres
Jhon Sebastián Acero Parra
Duberney Suarez Loaiza
Realice el diseño de Diagramas de Clases, en las siguientes situaciones:

1) Modela un sistema para administrar el inventario de una tienda. Debe incluir clases
"Producto", "Proveedor" y "Pedido". "Producto" tendrá subclases como "Electrónico" y
"Ropa", heredando de la clase base. Asegura que las relaciones entre los productos y los
proveedores sean adecuadamente representadas.
2) Crea el diagrama de clases para un sistema hospitalario. La clase "Empleado" tendrá
subclases "Médico", "Enfermero" y "Administrativo". Cada médico estará asociado a
múltiples "Paciente" y podrá emitir "Receta". Asegura el uso de encapsulamiento en datos
sensibles como diagnósticos y tratamientos.
3) Modela un sistema de reservas de viajes donde existan clases como "Transporte", con
subclases "Avión", "Tren" y "Autobús". Debe haber una relación entre "Pasajero" y
"Reserva", asegurando la encapsulación de datos personales. Además, contempla
asociaciones con una clase "Destino".
4) ¿Qué es Java y para qué se utiliza principalmente?

Java es un lenguaje de programación de propósito general, orientado a objetos y


multiplataforma, desarrollado por Sun Microsystems (actualmente propiedad de Oracle) en
1995.

Características principales de Java:

Multiplataforma: Funciona en cualquier sistema operativo gracias a la JVM (Java Virtual


Machine) ("Write once, run anywhere").
Orientado a objetos: Usa clases, herencia, polimorfismo y encapsulamiento.
Robusto y seguro: Tiene manejo automático de memoria (recolección de basura) y
verificación de código.
Gran ecosistema: Cuenta con bibliotecas estándar (Java SE) y frameworks populares como
Spring y Hibernate.

5) Explica qué es la Máquina Virtual de Java (JVM) y su función en el


ecosistema de Java.

¿Para qué se utiliza Java?

 Desarrollo web back-end: Con frameworks como Spring Boot y Jakarta EE.
 Aplicaciones empresariales: Sistemas bancarios, ERP y grandes plataformas (ej.
Amazon, LinkedIn).
 Android: Aunque Kotlin es ahora el preferido, muchas apps aún usan Java.
 Big Data y ciencia de datos: Herramientas como Hadoop y Spark están escritas en
Java.
 IoT y sistemas embebidos: Por su portabilidad y eficiencia.
 Videojuegos: Con motores como LibGDX.
 Máquina Virtual de Java (JVM)

La JVM (Java Virtual Machine) es un componente clave del ecosistema Java que permite la
ejecución de programas escritos en Java de manera independiente de la plataforma. Su
función principal es convertir el bytecode (código intermedio generado al compilar un
programa Java) en instrucciones específicas para el sistema operativo y hardware donde
se ejecuta.

Funciones principales de la JVM

Ejecución del bytecode:

 Cuando compilas un archivo .java, se genera un .class (bytecode).


 La JVM interpreta y ejecuta este bytecode en tiempo real.
 Independencia de plataforma ("Write Once, Run Anywhere"):
 El bytecode no es código máquina nativo, sino un formato intermedio.
 La JVM se encarga de traducirlo al lenguaje que entienda el sistema operativo
(Windows, Linux, macOS, etc.).
 Gestión de memoria (Garbage Collection):
 Automáticamente libera memoria de objetos no utilizados, evitando fugas.
 Seguridad y verificación:
 Verifica el bytecode antes de ejecutarlo para evitar operaciones maliciosas.
 Optimización de rendimiento (JIT Compiler):
 Usa compilación Just-In-Time (JIT) para convertir bytecode frecuentemente usado
en código nativo, mejorando la velocidad.

6) ¿Qué es un editor de texto y qué rol cumple en la escritura de código Java?

¿Qué es un editor de texto?

Un editor de texto es un programa diseñado para crear y modificar archivos de texto sin
formato (sin formato de estilo como negritas o imágenes). A diferencia de los
procesadores de texto (ej. Word), los editores de texto manejan código fuente en su
forma más pura.

 Rol del editor de texto en la escritura de código Java


 Creación y edición de archivos .java:
 Permite escribir el código fuente Java en sintaxis correcta (ej. HolaMundo.java).
 No compila ni ejecuta, solo guarda el texto plano.
 Resaltado de sintaxis (syntax highlighting):
 Colorea palabras clave (public, class, void), strings, comentarios, etc., para mejorar
la legibilidad.
 Autocompletado inteligente (IntelliSense):
 Sugiere métodos, clases y variables (útil en editores avanzados como VS Code o
Sublime Text).

Indentación automática:

 Organiza el código con sangrías para una estructura clara (ej. en bloques if o
bucles for).
 Detección de errores básicos:
 Algunos editores marcan paréntesis no cerrados o puntos y comas faltantes.
 Integración con herramientas externas:
 Puede conectarse con compiladores (javac) o la terminal para ejecutar programas.

Ejemplo de editores de texto para Java

 Básicos: Bloc de notas (Windows), TextEdit (macOS), Gedit (Linux).


 Avanzados: VS Code, Sublime Text, Atom, Notepad++.
 IDEs (más potentes): IntelliJ IDEA, Eclipse, NetBeans (incluyen compilador,
depurador y más).
7) ¿Cómo se compila y ejecuta un programa en Java? Proporciona un ejemplo
de comandos

básicos.

 Compilación y Ejecución de un Programa en Java


 Para compilar y ejecutar un programa en Java, se siguen estos pasos básicos:
 Escribir el código en un archivo con extensión .java (ej. HolaMundo.java).
 Compilar el código con javac (genera un archivo .class con el bytecode).
 Ejecutar el programa con java (la JVM interpreta el bytecode).

public class HolaMundo {


public static void main(String[] args) {
System.out.println("¡Hola, mundo desde Java!");
}
}

Acción Comando

Compilar javac

Archivo.java

Ejecutar java

ClasePrincipal

Compilar con javac

paquete ruta/Archivo.java

Ejecutar con java -cp ruta

paquete Paquete.Clase
8) ¿Qué elementos básicos conforman un programa en Java? (Clases, métodos,
etc.)

 clases (class)

Definición: Una clase es la plantilla o "molde" que define el comportamiento y los atributos
de un objeto.

public class NombreClase {

// Código aquí

 Métodos (methods)

Definición: Bloques de código que realizan una tarea específica.

Método principal (main): Punto de entrada del programa.

public static void main(String[] args) {

System.out.println("Hola, mundo");

 Variables

Tipos:

Primitivos: int, double, boolean, char, etc.

Objetos: String, ArrayList, etc.

 Atributos (Variables de Clase)

Definición: Variables declaradas dentro de una clase (representan características).


public class Coche {
String marca; // Atributo
int año; // Atributo
}

 Paquetes (package)

Definición: Organizan clases en grupos (similar a carpetas).


package com.miempresa.proyecto;
public class MiClase { ... }
 Palabras Clave (keywords)

public, private, class, static, void, if, for, return, etc.

 Bloques de Código ({})


if (edad >= 18) { // Inicio de bloque
System.out.println("Mayor de edad");
} // Fin de bloque

componen Función Ejemplo

te

Clase Define la estructura de un public class Persona {

objeto. ... }

Método Agrupa código reutilizable. void saludar() { ... }

Variable Almacena datos. int edad = 30;

Atributo Variable declarada en una String nombre;

clase.

Paquete Organiza clases en grupos package com.miempresa;

lógicos.

Comentari Documentación o notas en // Esto es un

o el código. comentario

9) Escribe el código para imprimir “Barrancabermeja, Capital Petrolera de


Colombia” en la
consola utilizando Java.
10) Explica cómo se declaran variables en Java. ¿Cuáles son los tipos de datos
más
comunes?

Declaración de Variables en Java

En Java, una variable se declara con la siguiente sintaxis:


tipoDato nombreVariable [= valorInicial];

int edad = 25; // Entero


double precio = 19.99; // Decimal
char letra = 'A'; // Carácter
boolean esMayor = true; // Booleano
String nombre = "Juan"; // Cadena de texto

 Ejemplo Completo
public class EjemploVariables {
public static void main(String[] args) {
// Variables primitivas
int cantidad = 10;
double temperatura = 23.5;
char simbolo = '$';
boolean activo = false;

// Variable de referencia (String)


String mensaje = "Aprendiendo Java";

System.out.println(mensaje + ": " + cantidad + " grados");


}
}

Diferencias Clave

Primitivos: Más rápidos, almacenan valores directamente.

Referencia: Almacenan direcciones a objetos (ej: String, arrays).

11) ¿Qué son los operadores en Java y cuáles son sus categorías?

 Operadores en Java

Los operadores son símbolos que realizan operaciones sobre variables y valores. Permiten
manipular datos, comparar valores, realizar cálculos matemáticos y más.

Operadores Aritméticos

Realizan cálculos matemáticos básicos.

Ejemplo:

int suma = 7 + 3; // 10

int resto = 10 % 4; // 2

 Operadores de Asignación

Asignan valores a variables.

Ejemplo:
int x = 10;

x += 5; // x = 15

 Operadores Relacionales (Comparación)

Comparan valores y devuelven true o false.

Ejemplo:
boolean esIgual = (10 == 10); // true

 Operadores Lógicos

Se usan con expresiones booleanas (true/false).

Ejemplo:
boolean acceso = (edad >= 18 && tienePermiso); // Verifica dos condiciones

 Operadores de Bits (Bitwise)

Manipulan bits individuales (usados en programación de bajo nivel).

Ejemplo:

int resultado = 5 & 3; // 1 (en decimal)

 Operador Ternario (? :)

Condicional simplificado en una línea.

int edad = 20;

String mensaje = (edad >= 18) ? "Mayor de edad" : "Menor de edad"; // "Mayor de

edad"

12) ¿Qué son las estructuras de control (if/else, switch) en Java y para qué
sirven?

Estructuras de Control en Java

Las estructuras de control permiten dirigir el flujo de ejecución de un programa en Java,


tomando decisiones o repitiendo acciones según condiciones. Las principales son:

Estructura Condicional if / else

¿Para qué sirve?

 Ejecuta un bloque de código solo si se cumple una condición.


 Estructura switch

¿Para qué sirve?

Evalúa una variable contra múltiples casos de manera más eficiente que varios if-else.

Operador Ternario (Alternativa a if/else simple)


Conclusión

if/else: Ideal para decisiones basadas en rangos o condiciones complejas.

switch: Óptimo para comparar un valor con opciones definidas (ej: menús, días de la
semana).

Ternario: Para asignaciones condicionales rápidas.

13) ¿Cuál es la diferencia entre un bucle for, while y do-while? Proporciona


ejemplos en código?

Los tres son estructuras de control que permiten repetir un bloque de código, pero se
utilizan en contextos diferentes y tienen formas distintas de funcionamiento.

 Bucle for: Se usa cuando se conoce de antemano cuántas veces debe ejecutarse
el bloque de código. La inicialización, condición y actualización están en una sola
línea.
 Bucle while: Se usa cuando no se sabe cuántas veces se va a repetir el bloque.
La condición se evalúa antes de ejecutar el bloque de código, por lo que puede no
ejecutarse ninguna vez si la condición es falsa desde el inicio.
 Bucle do-while: Similar al while, pero la condición se evalúa al final, por lo tanto,
el bloque se ejecuta al menos una vez, incluso si la condición es falsa al principio.

Ejemplo en Java:

Bucle for
for (int i = 0; i < 3; i++) {
System.out.println("for: " + i);
}

// Bucle while
int j = 0;
while (j < 3) {
System.out.println("while: " + j);
j++;
}

Bucle do-while

int k = 0;
do {
System.out.println("do-while: " + k);
k++;
} while (k < 3);

14) ¿Qué diferencia existe entre un método estático y uno no estático en Java?

 Un método estático (static) pertenece a la clase y se puede invocar sin


necesidad de crear una instancia del objeto. Es útil cuando el comportamiento del
método no depende de atributos específicos del objeto.
 Un método no estático (también llamado de instancia) requiere que se cree
un objeto para poder llamarlo, ya que puede acceder a atributos y otros métodos
del objeto específico.

Ejemplo en Java:

class Ejemplo {
static void metodoEstatico() {
System.out.println("Soy un método estático.");
}

void metodoNoEstatico() {
System.out.println("Soy un método no estático.");
}
}

Llamadas

Ejemplo.metodoEstatico(); // No requiere objeto


Ejemplo obj = new Ejemplo();
obj.metodoNoEstatico(); // Requiere objeto

15) ¿Cuál es la diferencia entre ocultamiento de atributos y encapsulación en la


programación orientada a objetos? Explica con ejemplos.

Respuesta:
Ocultamiento de atributos es la práctica de declarar los atributos como private o con
modificadores de acceso restringidos, para evitar que otras clases accedan directamente a
ellos.

Encapsulación es un principio más amplio que incluye ocultar datos y proporcionar


métodos públicos (getters y setters) para acceder y modificar esos datos de forma
controlada.

Ejemplo en Java:

class Persona {

private String nombre; // Ocultamiento

// Encapsulación con control de acceso


public String getNombre() {
return nombre;
}

public void setNombre(String nuevoNombre) {


if (nuevoNombre != null && !nuevoNombre.isEmpty()) {
nombre = nuevoNombre;
}
}
}

16) ¿Por qué es importante el principio de encapsulación en el diseño de


clases? ¿Cuáles serían las consecuencias de no aplicarlo correctamente?

La encapsulación es fundamental porque:

 Protege el estado interno del objeto.


 Permite mantener integridad de datos mediante validaciones.
 Mejora la mantenibilidad y reutilización del código.
 Reduce el acoplamiento entre clases.

Consecuencias de no aplicar encapsulación correctamente:

 El código se vuelve más propenso a errores.


 Los datos pueden ser modificados de forma incorrecta desde cualquier parte del
programa.
 Disminuye la seguridad, escalabilidad y legibilidad del software.
17) Explica el uso de getters y setters en Java. ¿En qué situaciones podrían no
ser la mejor opción para acceder a los atributos privados?

Los getters y setters son métodos públicos que permiten leer y modificar atributos
privados de una clase, manteniendo el control sobre cómo se accede a esos datos.

Ejemplo:

class Cuenta {
private double saldo;

public double getSaldo() {


return saldo;
}

public void setSaldo(double nuevoSaldo) {


if (nuevoSaldo >= 0) {
saldo = nuevoSaldo;
}
}
}
Cuándo pueden no ser la mejor opción:

En clases inmutables, donde el estado no debe cambiar después de la creación, se


prefieren constructores y no se utilizan setters.

Si se usan getters y setters sin validación o lógica, pueden romper la encapsulación al


exponer directamente los atributos.

18) ¿Cuáles son las cuatro plataformas del lenguaje de programación Java y
qué características distinguen a cada una?

1. Java SE (Standard Edition): Plataforma base que contiene las bibliotecas


principales como java.lang, java.util, etc. Se usa para desarrollar aplicaciones de escritorio,
herramientas y bibliotecas.

2. Java EE (Enterprise Edition) (ahora Jakarta EE): Plataforma para aplicaciones


empresariales y web. Incluye tecnologías como Servlets, JSP, EJB, JPA, etc.

3. Java ME (Micro Edition): Plataforma optimizada para dispositivos embebidos,


móviles y con recursos limitados como teléfonos antiguos o sistemas embebidos.

4. JavaFX: Plataforma para crear interfaces gráficas ricas, modernas e interactivas,


con soporte para multimedia, gráficos y CSS. Aunque a veces se incluye como parte de
Java SE, se considera una plataforma de UI independiente.
19) ¿Qué papel juega JavaFX en el desarrollo de aplicaciones en Java? ¿Cómo
se compara con otras herramientas de interfaz gráfica como Swing y AWT?

JavaFX es una biblioteca moderna para la creación de interfaces gráficas de usuario (GUI)
en Java. Soporta diseño en FXML, uso de CSS, animaciones, gráficos 2D/3D y multimedia.

Comparación:

 AWT (Abstract Window Toolkit): Biblioteca básica que depende de los


componentes del sistema operativo. Tiene baja portabilidad visual.
 Swing: Biblioteca más avanzada que AWT, con componentes totalmente en Java.
Más flexible pero con una apariencia anticuada.
 JavaFX: Reemplaza a Swing como la herramienta moderna. Ofrece mejores
herramientas de diseño, gráficos y soporte multimedia.

Ventajas de JavaFX:

 Interfaces más modernas.


 Separación entre lógica y diseño (FXML).
 Soporte para animaciones, gráficos y multimedia.

20) Explica el funcionamiento de la JVM y su papel en la portabilidad del


código Java. ¿Cómo se diferencia de un compilador tradicional?

La Java Virtual Machine (JVM) es el componente que ejecuta el bytecode Java. El código
fuente Java se compila en bytecode (.class), que es un formato intermedio independiente
del sistema operativo.

Función de la JVM:

 Ejecuta bytecode en cualquier plataforma donde esté instalada la JVM.


 Realiza la compilación JIT (Just-In-Time) para mejorar el rendimiento.
 Proporciona seguridad, manejo de memoria y recolección de basura (garbage
collection).
 Diferencias con un compilador tradicional:
 Un compilador tradicional (como en C o C++) genera código máquina específico
para el sistema operativo.
 Java, al compilar a bytecode y ejecutar sobre la JVM, se vuelve portable: el mismo
código corre en diferentes plataformas.

21) ¿Qué es una API en el contexto de Java? Da ejemplos de algunas API


estándar que se incluyen en el JDK.

Una API (Application Programming Interface) en Java es un conjunto de clases, interfaces


y métodos que permiten a los programadores utilizar funcionalidades predefinidas sin
tener que implementarlas desde cero.

Ejemplos de API estándar en el JDK:


 java.lang: Clases básicas como String, Math, Object, System.
 java.util: Estructuras de datos como ArrayList, HashMap, y utilidades como Date,
Collections.
 java.io: Para manejo de archivos y flujos de entrada/salida.
 java.net: Para programación de red (sockets, URLs).
 java.sql: Para acceso a bases de datos a través de JDBC.
 Estas API ayudan a desarrollar aplicaciones de manera más rápida, reutilizando
funcionalidades ya probadas y optimizadas.

También podría gustarte