“ PROGRAMACIÓN JAVA “.
UNIVERSIDAD ALFA Y OMEGA
ALUMNOS : Ángel Benítez, Carmen Pérez, Ana Fernanda García, Jennifer Silvan, María
Guadalupe Montejo, Cristian Jhovani Morales.
MATERIA : Ingeniería en sistemas 1.
SEMESTRE : 1ro y 3ro.
MAESTRO : Roldan Vázquez.
TEMA : Exposición Equipo 1.
La historia de Java (de 1995 a 2011) es la evolución desde un lenguaje para
electrodomésticos hasta convertirse en el pilar de internet y grandes aplicaciones
empresariales. Su lema fue siempre: "Write once, run anywhere" (Escribe una vez,
21.1 HISTORIA DEL ejecuta en cualquier lugar).
LENGUAJE JAVA : DE 1990-1995: Origen (Oak): James Gosling (Sun Microsystems) crea Oak para
dispositivos electrónicos. No tuvo éxito ahí, así que lo renombraron a Java.
JAVA 1.0 A JAVA 7 . Java 1.0 (1996) – El Comienzo: Lanzado con el objetivo de hacer páginas web
interactivas mediante “Applets”. Introdujo la Máquina Virtual Java (JVM), lo que
permitía correr el mismo código en cualquier sistema operativo.
Java 1.1 (1997) – Expansión: Mejoró la conectividad con bases de datos (JDBC),
introdujo los JavaBeans y clases internas, haciendo el lenguaje más robusto.
Java 2 (1.2 – 1.4) (1998-2002) – La Consolidación: Se lanzó como “Java 2 Platform”.
Añadió Swing (para gráficos más avanzados), el framework de Colecciones (mejor
gestión de datos) y el compilador Just-in-Time (JIT) que aceleró mucho su velocidad.
Java 5 (2004) – La Gran Revolución: Fue el cambio más grande en la sintaxis. Introdujo
Generics (mayor seguridad en datos), anotaciones, enumeraciones y el “for-each”
mejorado, haciendo el código mucho más fácil de leer y escribir.
Java 6 (2006) – Estabilidad: Enfocado en mejorar el rendimiento, simplificar la API y
facilitar la integración con lenguajes de scripting.
Java 7 (2011) – La Era Oracle: Primera versión importante tras la compra de Sun por
Oracle. Introdujo el “Project Coin” (pequeñas mejoras de sintaxis), mejoras en el
manejo de archivos (NIO) y switch-case con Strings.
• Java es un lenguaje de programación orientado a objetos
,multiplataforma (funciona en cualquier dispositivo con
JVM) y seguro , muy usado para desarrollar aplicaciones
de web, móviles y empresariales.
21.2 EL LENGUAJE DE Ejemplo:
Imagina que Java es un idioma que usas para darle
PROGRAMACIÓN JAVA instrucciones a una computadora. Es como un “idioma para
máquinas” que te permite crear:
- Aplicaciones de web (como sitios interactivos)
- Apps móviles (como las de tu teléfono)
- Programas de computadora (como juegos o herramientas)
Java es popular porque funciona en cualquier dispositivo
(computadora, teléfono, etc.) si tiene un “traductor” llamado
JVM.
21.3 UN PROGRAMA SENCILLO EN JAVA.
• Un programa sencillo en Java es el clásico "Hola Mundo", que muestra un mensaje en la consola y sirve para
entender la estructura básica (clases, main, [Link]), pero también puedes hacer programas más
interactivos como una calculadora simple, un conversor de divisas o una lista de tareas para practicar variables,
condicionales y bucles. Para empezar, necesitarás un IDE como IntelliJ IDEA, Eclipse o NetBeans para escribir y
ejecutar tu código.
• Ejemplo:
Public class Hola {
public static void main(String[] args) {
[Link](“¡Hola, mundo!”);
Este programa solo imprime”¡ Hola mundo !” en la pantalla .
Los tipos de datos en Java son como “contenedores” que dicen qué tipo
de información pueden guardar. Hay dos grandes grupos:
1. Tipos primitivos (guardan valores simples):
- `int` (números enteros)
- `double` (números decimales)
21.4 TIPOS DE DATOS. - `boolean` (true/false)
- `char` (un carácter)
2. Tipos de referencia (guardan referencias a objetos):
- `String` (texto)
- `ArrayList` (listas)
- Objetos personalizados
Ejemplo:
int edad = 25; // tipo primitivo
String nombre = “Juan”; // tipo referencia
21.5 VARIABLES, CONSTANTES Y ASIGNACIONES.
Sirven para guardar y manejar datos en el programa.
- Variables: Guardan datos que necesitan cambiar (ej: edad de
un usuario).
- Constantes: Guardan valores fijos (ej: valor de PI).
- Asignación: Permite dar o cambiar valores a variables.
Ejemplo práctico:
int edad = 18; // guarda edad.
edad = edad + 1; // cambia edad a 19.
final double PI = 3.1416; // valor fijo.
¿Qué son los Operadores?
Son símbolos que ejecutan acciones sobre uno o más valores (operandos).
Operandos: Variables, constantes o valores literales (ej: 5, “hola”).
Ejemplo: En a + b, + es el operador, y a y b son los operandos.
21.6 OPERADORES Y Tipos Comunes de Operadores
EXPRESIONES.
Aritméticos: + (suma, concatenación), - (resta), * (multiplicación), / (división), %
(módulo/residuo).
Asignación: = (asignar), +=, -=, *=, /= (combinan operación y asignación).
Comparación (Relacionales): == (igual), != (diferente), < (menor que), > (mayor que).
Lógicos: && (AND), || (OR), ! (NOT) para valores booleanos.
Incremento/Decremento: ++ (aumenta en 1), -- (disminuye en 1).
¿Qué son las Expresiones?
Una combinación de operandos, operadores y a veces llamadas a métodos que
resulta en un valor único (un literal, una variable o el resultado de una operación).
Ejemplo: (4 + 5) * 3 es una expresión. El resultado es 27.
Precedencia de operadores
Define el orden en que se evalúan los operadores en una expresión sin paréntesis.
Los operadores de mayor precedencia se ejecutan primero (ej: * antes que +).
Los paréntesis () se usan para anular la precedencia y forzar la evaluación de una
parte específica de la expresión primero, por ejemplo (4+5)*3.
Funciones matemáticas en Java: Métodos que hacen
operaciones matemáticas comunes.- Están en la clase `Math`.
Ejemplo:
21.7 FUNCIONES double raíz = [Link](16); // raíz cuadrada de 16 → 4.0
MATEMÁTICAS. double potencia = [Link](2, 3); // 2 al cubo → 8.0
Algunas funciones:
-`[Link](x)` → raíz cuadrada.
- `[Link](x, y)` → x elevado a y.
- `[Link]()` → número aleatorio.
Cadenas (Strings) en Java: Son textos (palabras, frases) entre
comillas.
- Se usan para guardar y manejar texto.
21.8 CADENAS.
Ejemplo:
String nombre = “Juan”;
String saludo = “Hola, “ + nombre;
// saludo → “Hola, Juan”
Puedes:
- Concatenar (unir): `”Hola” + “ mundo”` → “Hola mundo”
- Obtener longitud: `”hola”.length()` → 4.
21.9 CÓDIGO DE El código de caracteres por excelencia siempre ha sido el código ASCII
(apéndice B). El conjunto de caracteres ASCII es una lista de todos los
CARACTERES ASCII Y caracteres utilizados normalmente en los teclados de las computadoras
(inglés, español, francés, catalán, etc.), más unos pocos caracteres
UNICODE . especiales. En esta lista a cada carácter se le asigna un número de modo
que los caracteres se pueden almacenar en función del correspondiente
número o código.
Java y muchos otros lenguajes de programación utilizan el conjunto de
caracteres Unicode. El código de caracteres Unicode incluye el conjunto
de caracteres ASCII más muchos otros caracteres utilizados en lenguajes
con alfabetos diferentes al inglés, español, etcétera.
El conjunto de caracteres ASCII es un subconjunto del conjunto de
caracteres Unicode.
La ventaja del conjunto de caracteres Unicode es que facilita el manejo de
otros lenguajes distintos al inglés, español, etc. Por ejemplo, se pueden
utilizar letras del alfabeto griego o árabe.
Entrada: Datos que el usuario mete al programa.
Salida: Resultados que el programa muestra.
21.10 ENTRADA Y Ejemplos en Java:
Imagina que el programa es un restaurante:
SALIDA . -Entrada: El mesero te trae el menú (pides comida = datos).
- Salida: El mesero te trae la comida (resultado = lo que ves en pantalla).
En Java:
- Entrada: `Scanner` es como el mesero que toma tu pedido.
- Salida: `[Link]` es como el mesero que te trae la comida.
Ejemplo:
//Entrada
Scanner mesero = new Scanner([Link]);[Link]("¿Qué quieres
comer?");String comida = [Link](); // pides "tacos"//
//Salida
[Link]("¡Aquí tienes tus " + comida + "!");// muestra: ¡Aquí tienes tus
tacos! .
El flujo de control en Java es el orden en que se ejecutan las instrucciones de un
programa, permitiendo tomar decisiones (if, switch) y repetir tareas (bucles for, while),
en lugar de seguir siempre de arriba abajo, haciendo que el código sea dinámico y
lógico, adaptándose a diferentes condiciones.
21.11 FLUJO DE Tipos de sentencias de control de flujo
Sentencias de Decisión: Permiten al programa elegir qué bloque de código ejecutar.
CONTROL . -If-else: Ejecuta un bloque si la condición es verdadera y otro si es falsa.
-Switch: Selecciona un bloque de código entre muchas opciones basadas en el valor
de una expresión.
Sentencias de Bucle: Repiten un bloque de código.
-For: Ideal cuando se sabe el número de iteraciones.
-While: Repite mientras una condición sea verdadera.
-Do-while: Similar a while, pero garantiza al menos una ejecución.
Sentencias de Salto (o Ramificación): Modifican el flujo dentro de un bucle o
método.
-Break: Sale inmediatamente de un bucle o switch.
-Continue: Salta a la siguiente iteración del bucle actual.
-Return: Termina la ejecución de un método y devuelve el control al llamador.
Los arreglos (arrays) en Java son estructuras de datos que almacenan una colección
de elementos del mismo tipo (enteros, cadenas, etc.) en ubicaciones de memoria
contiguas, accesibles mediante un índice numérico que comienza en 0, siendo su
tamaño fijo una vez declarado, lo que permite manejar grandes cantidades de datos
relacionados de forma eficiente.
21.12 ARREGLOS • Definición
(ARRAYS). Colección de un mismo tipo: Un arreglo agrupa variables del mismo tipo (por
ejemplo, int, String, double).
Acceso por índice: Cada elemento tiene una posición (índice) que empieza en 0 (el
primer elemento está en el índice 0, el segundo en el 1, y así sucesivamente).
Tamaño fijo: Una vez creado, el tamaño del arreglo no puede cambiar.
• Ejemplo breve ( enteros).
// 1. Declaración y creación del arrayint[] edades = new int[5]; // Crea un array de 5
enteros
// 2. Asignación de valores (usando índices)edades[0] = 25; // Asigna 25 al primer
elemento (índice 0)edades[1] = 30;edades[2] = 22;edades[3] = 40;edades[4] = 19;
// 3. Acceso a un [Link]("La edad en la posición 2 es: " +
edades[2]); // Imprime 22
// 4. Otra forma: declaración, creación e inicialización en una líneaString[] nombres =
{"Ana", "Luis", "Carlos"}; // El tamaño es 3 (automático)[Link]("El primer
nombre es: " + nombres[0]); // Imprime Ana.
21.13 APPLETS .
• Un Applets Java es un pequeño programa escrito en
Java que se incrusta en una página web HTML para
añadir funcionalidad interactiva, ejecutándose
dentro del navegador mediante la Máquina Virtual
de Java (JVM) del cliente, como animaciones,
juegos simples o calculadoras. Ejemplos clásicos
incluyen gráficos animados, herramientas
interactivas o botones que responden a clics,
utilizando componentes AWT/Swing para la interfaz
gráfica y métodos como init() para inicializar y
paint() para dibujar.
La creación de un applet Java implica escribir código en un archivo .java que herede de
Japplet, importar [Link], y usar métodos como init() en lugar de main(),
añadiendo componentes Swing (como Jlabel) con add() para mostrar elementos
interactivos en un navegador, requiriendo un archivo HTML con la etiqueta <applet>
21.14 CREACIÓN DE para su visualización, siendo un proceso que se simplifica con IDEs como NetBeans,
aunque los applets han sido reemplazados por tecnologías más modernas.
APPLET . Pasos básicos para crear un applet
Escribir el código Java:
Crea una clase que herede de [Link].
Importa [Link]..
Implementa el método init() como punto de entrada, no main().
Usa add(componente) para añadir elementos como Jlabel.
Compilar el código: Usa el compilador de Java (javac) para generar un archivo .class.
Crear la página HTML:
Crea un archivo HTML con la etiqueta <applet>.
Especifica code=“[Link]”, width=“ancho” y height=“alto”.
Ejecutar el applet: Abre el archivo HTML en un navegador con soporte Java o usa el
Applet Viewer.
El ciclo de vida de un Applet Java es la secuencia de estados (creación,
inicialización, ejecución, parada y destrucción) que atraviesa un programa
21.15 CICLO DE VIDA Java incrustado en una página web, gestionada por los métodos init(),
start(), stop() y destroy(), permitiendo al navegador controlar su carga,
DE UN APPLET . ejecución y descarga para añadir interactividad, como animaciones o
gráficos, aunque su uso ha disminuido, entenderlo es clave para entender
la interacción cliente-servidor en aplicaciones web históricas.
Ejemplo:
Imagina un applet que muestra un contador:
init(): Inicializa el contador a 0.
start(): Empieza a incrementar el contador y a mostrarlo en pantalla.
Stop(): Detiene el contador si el usuario va a otra página.
Destroy(): Libera la memoria usada por el contador al cerrar el navegador.
Paint(): Dibuja el número actual del contador en la pantalla.
PROGRAMACIÓN ORIENTADA A OBJETOS
EN JAVA. CLASES Y OBJETOS.
Clase: Molde que define cómo es algo (propiedades y acciones)
Objeto: Cosa creada con ese molde (tiene valores específicos).
Ejemplo:
- Clase: `Perro`
22.1 CLASES Y - Propiedades: nombre, edad
- Acción: ladrar()
OBJETOS . - Objetos:
-`p1`: Perro(nombre="Fido", edad=3)
-`p2`: Perro(nombre="Luna", edad=1)
class Perro {
String nombre;
int edad;
void ladrar() { [Link]("Lau lau"); }}
public class Main
{ public static void main(String[] args) {
Perro p1 = new Perro();
[Link] = "Fido";
[Link](); // Lau lau }}
22.2 DECLARACIÓN DE UNA CLASE .
Una declaración de clase en Java define un molde para crear objetos,
agrupando atributos (datos) y métodos (comportamientos) comunes a
esos objetos, usando la palabra clave class, seguido del nombre y un
cuerpo entre llaves {} para sus miembros; por ejemplo, una
clase Coche puede tener atributos como color y velocidad, y métodos
como acelerar().
Los paquetes en Java son mecanismos para organizar, agrupar y encapsular clases,
interfaces y otros elementos relacionados en espacios de nombres, como carpetas
lógicas, lo que ayuda a evitar conflictos de nombres, controlar el acceso, mejorar la
22.3 PAQUETES . estructura del código y facilitar la reutilización y mantenimiento en proyectos grandes.
Cada clase pertenece a un paquete, y se usan las palabras clave package para
definirlo y import para usar componentes de otros paquetes en tu código.
Cómo se usan
Declaración: Se define al inicio de un archivo Java con package [Link];.
Importación: Se usa import para acceder a clases de otros paquetes, como import
[Link];.
Acceso completo: Se puede usar el nombre completo de la clase
(ej. [Link]) sin necesidad de importarla.
Constructores en Java : Son métodos especiales que inicializan objetos al crearlos.
- Se llaman igual que la clase.
- No tienen tipo de retorno (ni `void`).
22.4 Ejemplo:
class Persona {
CONSTRUCTORES . String nombre;
// Constructor
Persona(String nombre) {
[Link] = nombre;
public class Main {
public static void main(String[] args) {
Persona p = new Persona(“Juan”);
[Link]([Link]); // Juan
- `Persona(String nombre)` es el constructor.
- `new Persona(“Juan”)` lo llama.
Recolección de objetos (Garbage Collection): Es
cómo Java limpia objetos que ya no se usan para
liberar memoria.
22. 5 RECOLECCIÓN - Automático: No necesitas hacer nada, Java lo
DE OBJETOS . hace solo.
¿Cómo funciona?
- Cuando un objeto ya no se referencia, se marca
para eliminar.
- El Garbage Collector lo elimina después.
Public class Main {
public static void main(String[] args) {
String s = new String(“Hola”);
s = null; // El objeto “Hola” se puede eliminar
En Java, la palabra clave this se refiere al objeto actual que está
ejecutando el método o constructor donde se usa; es una referencia a la
22.6 OBJETO QUE instancia misma de la clase, resolviendo ambigüedades entre variables
locales y de instancia, invocando constructores de la misma clase, o
ENVÍA EL MENSAJE: pasando el objeto actual como argumento. El objeto que "envía el
mensaje" (invoca un método) es el que this representa dentro de ese
THIS método.
¿Qué es y para qué sirve this?
Referencia al objeto actual: this es una variable de referencia que apunta
a la propia instancia de la clase.
Resolver ambigüedades: Se usa para distinguir entre una variable de
instancia y un parámetro (o variable local) que tienen el mismo nombre.
Por ejemplo: [Link] = nombre;.
Invocar otros constructores: this() permite llamar a otro constructor
dentro de la misma clase, siempre que sea la primera línea del
constructor que lo llama.
Pasar la instancia: Se puede pasar el objeto actual como argumento a otro
método o constructor: otroMetodo(this);.
Devolver la instancia: return this; devuelve la referencia al objeto actual.
22.7 MIEMBROS • Los miembros static en Java (variables y
STATIC DE UNA métodos) pertenecen a la clase en sí, no a
objetos individuales, lo que significa que solo hay
CLASE. una copia compartida entre todas las instancias,
ahorrando memoria y permitiendo acceso
directo a través del nombre de la clase
(ej. [Link]) sin crear un objeto.
Se usan para datos compartidos (como una
constante PI) o funciones de utilidad
(como [Link]), y se cargan una vez cuando la
clase se carga en memoria, a diferencia de los
no-estáticos que se crean con cada objeto.
• La clase Object en Java es la superclase
raíz de toda la jerarquía de clases,
heredando todas las demás clases
22.8 CLASE OBJECT .
directa o indirectamente, y
proporcionando métodos
fundamentales como toString(),
equals(), hashCode() y clone(), que
definen el comportamiento básico de
cualquier objeto en Java, permitiendo
comparaciones, representaciones y
manejo universal de objetos.
• Los Tipos de Datos Abstractos (TDA) en
22.9 TIPOS Java son modelos conceptuales
ABSTRACTOS DE definidos por un conjunto de valores y
las operaciones que se pueden realizar
DATOS EN JAVA. sobre ellos, ocultando los detalles de
implementación para el usuario, lo que
se logra principalmente
mediante clases abstractas e
interfaces para encapsular la lógica de
estructuras de datos como listas, pilas o
colas, permitiendo enfocarse en el "qué"
(las operaciones) y no en el "cómo" (la
implementación).
PROGRAMACIÓN ORIENTADA A OBJETOS
EN JAVA. HERENCIA Y POLIMORFISMO.
• En Java, las clases derivadas (o
subclases) son clases
que heredan atributos y métodos de
23.1 CLASES una clase base (o superclase) usando la
DERIVADAS . palabra clave extends, permitiendo la
reutilización de código y la creación de
jerarquías,
como Empleado extendiendo Persona;
pueden añadir sus propios miembros,
sobrescribir métodos heredados
(polimorfismo) y usar constructores de
la superclase con super, modelando
relaciones "Es un" para construir
software más mantenible y abstracto.
• La herencia pública en Java permite que una
clase (subclase) adquiera atributos y
métodos de otra clase (superclase) usando
la palabra clave extends, promoviendo
23.2 HERENCIA la reutilización de código y la relación "es-
PÚBLICA . un" (como "Un Perro es un Animal"). La
subclase hereda miembros públicos y
protegidos, pudiendo usarlos, anularlos o
agregar nuevos; los privados no se heredan
directamente. Este mecanismo es
fundamental en la Programación Orientada
a Objetos (POO) para construir jerarquías de
clases, como en el ejemplo
de Perro heredando de Animal,
donde Perro puede usar métodos
como comer() y definir sus propios métodos
como ladrar().
• Los constructores en herencia en Java
23.3 son métodos especiales que inicializan
CONSTRUCTORES EN objetos de clases hijas (subclases),
invocando automáticamente al
HERENCIA constructor de la clase padre
(superclase) para inicializar sus
atributos heredados, usando super()
para llamar explícitamente al
constructor padre, permitiendo un
encadenamiento y una inicialización
estructurada en jerarquías de clases sin
que los constructores se hereden
directamente, sino que se invoquen.
• Atributos `final` en Java: Son constantes, no
23.4 MÉTODOS Y se pueden modificar después de inicializarlos.
- Clases `final`: No se pueden heredar (no se
CLASES NO puede usar `extends`).
DERIVABLES : -Métodos `final`: No se pueden sobrescribir en
ATRIBUTO FINAL . clases hijas.
Ejemplo:
final class Matematica { // no se puede heredar
static final double PI = 3.1416; // constante
final void mostrarPI() { // no se puede sobrescribir
[Link](PI); }}
// class OtraMatematica extends Matematica {} //
ERROR: no se puede heredar
- `PI` no cambia, `Matematica` no se hereda,
`mostrarPI()` no se sobrescribe.
23.5
CONVERSACIÓNES • En Java, la "conversación" entre objetos
de clases base y derivadas se da a
ENTRE OBJETOS DE través de la herencia, donde la derivada
CLASE BASE Y CLASE hereda métodos y atributos de la base
DERIVADA. (relación "es un"), permitiendo a la clase
derivada extender (añadir nuevos)
o sobrescribir (modificar) el
comportamiento, y usando super para
llamar métodos de la clase padre,
facilitando la reutilización de código y la
comunicación polimórfica, aunque el
objeto derivado siempre puede ser
tratado como un objeto de la clase
base.
• Los métodos abstractos en Java son
23.6 MÉTODOS funciones declaradas sin cuerpo
ABSTRACTOS (implementación) usando la palabra
clave abstract, obligando a las clases
hijas a implementarlos, y se usan en
clases abstractas para definir un
"contrato" o esqueleto de funcionalidad
común que debe ser específico en cada
subclase, promoviendo la abstracción y
el polimorfismo.
POR SU ATENCIÓN.