Introducción
Este laboratorio mejorará tus habilidades en Java presentando métodos y los fundamentos de la programación orientada a objetos (OOP, por sus siglas en inglés). Estos conceptos son esenciales para escribir código bien estructurado, reutilizable y eficiente. Cubriremos:
- Crear y utilizar métodos para organizar el código y facilitar la reutilización.
- Comprender las ideas principales detrás de las clases y los objetos.
- Implementar una clase básica que incluya métodos y atributos.
Al final de este laboratorio, serás capaz de escribir programas en Java que utilicen métodos para dividir problemas complejos en segmentos más pequeños y manejables. También adquirirás una comprensión de cómo funciona la programación orientada a objetos en Java, una habilidad crucial para construir aplicaciones más grandes y complejas. Si estos conceptos parecen complicados al principio, no te preocupes, los abordaremos paso a paso y, al final del laboratorio, apreciarás cómo estas ideas contribuyen a un código más organizado y potente.
¡Comencemos!
Entendiendo y Creando Métodos
Los métodos son esencialmente pequeños programas dentro de tu programa principal. Te ayudan a organizar tu código, mejorar su legibilidad y habilitar la reutilización del código sin necesidad de escribir el mismo código repetidamente. Considera los métodos como herramientas especializadas en un conjunto de herramientas, cada una diseñada para un propósito específico.
Comienza abriendo el archivo
MethodDemo.javaen el WebIDE. Deberías ver este código de inicio:public class MethodDemo { public static void main(String[] args) { System.out.println("Welcome to the Method Demo!"); // TODO: Call methods here } // TODO: Add methods here }Esta es la estructura fundamental de nuestro programa Java. El método
maines el punto de entrada donde comienza la ejecución de nuestro programa.Ahora, creemos nuestro primer método. Haremos un método simple que imprima un saludo. Agrega este método fuera y después del método
main, al nivel de la clase:public class MethodDemo { public static void main(String[] args) { System.out.println("Welcome to the Method Demo!"); // TODO: Call methods here } // Add the new method here, outside and after the main method public static void printGreeting(String name) { System.out.println("Hello, " + name + "! Welcome to Java methods."); } }Analicemos lo que esto significa:
public: Esta palabra clave indica que se puede acceder al método desde otras clases.static: Esto significa que el método pertenece a la clase misma, no a una instancia particular de la clase. Profundizaremos en este concepto más adelante; por ahora, piénsalo como un requisito para los métodos que queremos usar sin crear un objeto.void: Esto significa que nuestro método no devuelve ningún valor. Realiza una acción (imprimir un saludo), pero no devuelve ningún dato.printGreeting: Este es el nombre que le hemos asignado a nuestro método. Usaremos este nombre para invocar o llamar al método.(String name): Este es un parámetro: una pieza de datos que acepta nuestro método. Espera unString(cadena de texto), que hemos llamadoname. Cuando llamemos a este método, deberemos proporcionar un valor para este parámetro.
¡Genial! Ahora que hemos creado un método, usémoslo. Dentro del método
main, reemplaza el comentario// TODO: Call methods herecon:printGreeting("Alice");
Esta línea llama o invoca nuestro método
printGreetingy le pasa el nombre "Alice" como un argumento. El argumento proporciona la entrada específica que el método necesita para realizar su acción.Guarda el archivo y compilemos y ejecutemos el programa. En la terminal en la parte inferior de tu WebIDE, escribe estos comandos:
javac ~/project/MethodDemo.java java -cp ~/project MethodDemoEl primer comando compila nuestro archivo Java, traduciéndolo a bytecode (código de bytes) que la Java Virtual Machine (JVM) puede entender. El segundo comando ejecuta el programa compilado. Deberías ver una salida similar a esta:
Welcome to the Method Demo! Hello, Alice! Welcome to Java methods.¡Excelente! Acabas de crear y utilizar tu primer método Java. Llamémoslo de nuevo con un nombre diferente. Agrega esta línea en el método
main, justo después de la primera llamada aprintGreeting:printGreeting("Bob");Guarda, compila y ejecuta el programa nuevamente. Ahora deberías ver:
Welcome to the Method Demo! Hello, Alice! Welcome to Java methods. Hello, Bob! Welcome to Java methods.¿Notas cómo podemos reutilizar nuestro método con diferentes entradas? Este es un beneficio significativo del uso de métodos.
Ahora, creemos un método que devuelva un valor. Agrega este método a tu clase, debajo del método
printGreeting:public static int sumNumbers(int a, int b) { return a + b; }Este método acepta dos enteros, los suma y devuelve el resultado. Observa que en lugar de
void, usamosintpara indicar que este método devuelve un valor entero.Usemos este nuevo método en nuestro método
main. Agrega estas líneas al final del métodomain:int result = sumNumbers(5, 7); System.out.println("The sum of 5 and 7 is: " + result);Aquí, estamos invocando nuestro método
sumNumbers, proporcionando los valores 5 y 7 como argumentos. El valor de retorno del método se almacena luego en una variable llamadaresult. Después de almacenar el valor de retorno, imprimimos el valor en la consola.Guarda, compila y ejecuta el programa una vez más. Ahora deberías ver la salida adicional:
The sum of 5 and 7 is: 12
¡Felicitaciones! Has creado y utilizado tus primeros métodos Java. Has visto cómo los métodos pueden realizar acciones (como mostrar saludos) y proporcionar valores de retorno (como la suma de dos números). Los métodos te permiten estructurar tu código en piezas más pequeñas y reutilizables, lo que hace que tus programas sean más fáciles de entender y mantener.
Introducción a Clases y Objetos
Ahora que comprendemos los métodos, demos un paso hacia la programación orientada a objetos creando una clase simple. En la programación orientada a objetos, usamos las clases como planos para crear objetos. Piensa en una clase como un cortapastas y en los objetos como las galletas que haces con él.
Abre
Car.javay comencemos a construir nuestra clase. Primero, definiremos la clase y agregaremos algunos atributos:public class Car { // Attributes private String make; private String model; private int year; }Estos atributos (también llamados campos o propiedades) definen lo que cada objeto
Cartendrá. Cada automóvil tendrá una marca, un modelo y un año de fabricación.La palabra clave
privatesignifica que estos atributos solo pueden ser accedidos desde dentro de la clase misma. Este es un ejemplo de encapsulación, un concepto que ayuda a proteger la integridad de los datos dentro de nuestros objetos.Ahora, agreguemos un constructor a nuestra clase. Un constructor es un método especial que se llama automáticamente cuando creamos un nuevo objeto. Se utiliza principalmente para inicializar los atributos del objeto. Agrega este constructor a tu clase
Car:// Constructor public Car(String make, String model, int year) { this.make = make; this.model = model; this.year = year; }Este constructor toma tres parámetros y los utiliza para establecer los valores de nuestros atributos. La palabra clave
thisse utiliza para referirse a los atributos del objeto actual; ayuda a diferenciar entre el atributo del objeto y el parámetro pasado al constructor cuando sus nombres son idénticos.A continuación, agreguemos un método a nuestra clase que mostrará información sobre el automóvil. Agrega este método a tu clase
Car:// Method public void displayInfo() { System.out.println("Car Information:"); System.out.println("Make: " + make); System.out.println("Model: " + model); System.out.println("Year: " + year); }

Este método no toma ningún parámetro y no devuelve ningún valor. Simplemente imprime la información del automóvil en la consola.
¡Genial! Hemos creado nuestra clase
Car. Ahora abramosCarDemo.javay agreguemos el siguiente código:public class CarDemo { public static void main(String[] args) { // We'll add code here in the next step } }Esto establece la estructura básica de nuestro programa de demostración.
Ahora, creemos algunos objetos
Cary usémoslos. Agrega este código dentro del métodomain:Car myCar = new Car("Toyota", "Corolla", 2022); myCar.displayInfo(); Car friendsCar = new Car("Honda", "Civic", 2023); friendsCar.displayInfo();Aquí, estamos creando dos objetos
Car. La palabra clavenewse utiliza para crear un nuevo objeto, y estamos llamando al constructor que definimos anteriormente para establecer la marca, el modelo y el año. Luego, estamos llamando al métododisplayInfoen cada objeto de automóvil para mostrar sus propiedades.Antes de compilar y ejecutar nuestro programa, es importante tener en cuenta que estamos trabajando con múltiples archivos Java (
Car.javayCarDemo.java). Cuando se compilan múltiples archivos que tienen dependencias, debemos compilarlos juntos. Además, asegúrate de queCarDemo.javayCar.javaestén ubicados en el mismo directorio; de lo contrario, necesitarás importar la claseCaral principio deCarDemo.javacomo se muestra a continuación.Si
CarDemo.javayCar.javase encuentran en diferentes directorios, es posible que debas agregar una declaración de importación en la parte superior deCarDemo.java:import packagename.Car; // Replace 'packagename' with the actual package name if applicableAhora, compilémos y ejecutemos el programa
CarDemo:javac ~/project/Car.java ~/project/CarDemo.java java -cp ~/project CarDemoEl primer comando compila ambos archivos Java juntos, asegurando que se aborden todas las dependencias. El segundo comando ejecuta nuestra clase
CarDemo.Deberías ver una salida como esta:
Car Information: Make: Toyota Model: Corolla Year: 2022 Car Information: Make: Honda Model: Civic Year: 2023

¡Felicidades! Acabas de crear tu primera clase Java y la has utilizado para crear objetos. Esta es la base de la programación orientada a objetos en Java. Has definido un plano (la clase Car) y lo has utilizado para crear instancias específicas (los objetos Car). Cada objeto tiene su propio conjunto único de atributos, pero todos comparten la estructura y el comportamiento definidos por la clase.
Mejorando Nuestra Clase con Más Métodos
Ahora que tenemos una comprensión básica de las clases y los objetos, mejoremos nuestra clase Car con más métodos para aumentar su utilidad. Agregaremos métodos que representen acciones que un automóvil puede realizar y propiedades sobre las que podríamos querer preguntar sobre un automóvil.
Abre el archivo
Car.java. Vamos a agregar un método que represente al automóvil acelerando. Agrega este método a la claseCar:public void accelerate() { System.out.println("The " + make + " " + model + " is accelerating."); }Este método no modifica ninguno de los atributos del automóvil; simplemente muestra un mensaje sobre el automóvil acelerando.
Ahora, agreguemos un método para frenar. Agrega este método a la clase
Car:public void brake() { System.out.println("The " + make + " " + model + " is braking."); }Este método también solo muestra un mensaje sobre la acción del automóvil, al igual que el método
accelerateanterior.A continuación, agreguemos un método que proporcione información sobre el automóvil. Agrega este método:
public String getMakeAndModel() { return make + " " + model; }Este método combina la marca y el modelo en una sola cadena y la devuelve. Observa que el tipo de retorno es
String, novoid, ya que este método nos está proporcionando información.Finalmente, agreguemos un método que determine si un automóvil se clasifica como antiguo. En muchos lugares, un automóvil se considera antiguo si tiene más de 25 años. Agrega este método:
public boolean isAntique() { int currentYear = java.time.Year.now().getValue(); return (currentYear - year) > 25; }Este método utiliza la clase
Yearincorporada de Java para obtener el año actual. Luego calcula la edad del automóvil y devuelvetruesi tiene más de 25 años, yfalseen caso contrario.Con estos métodos adicionales agregados a nuestra clase
Car, actualicemos nuestro archivoCarDemo.javapara usarlos. AbreCarDemo.javay reemplaza su contenido con:public class CarDemo { public static void main(String[] args) { Car myCar = new Car("Toyota", "Corolla", 2022); Car classicCar = new Car("Ford", "Mustang", 1965); myCar.displayInfo(); myCar.accelerate(); myCar.brake(); System.out.println(classicCar.getMakeAndModel() + " is an antique: " + classicCar.isAntique()); Car[] carArray = {myCar, classicCar}; for (Car car : carArray) { System.out.println(car.getMakeAndModel() + " is an antique: " + car.isAntique()); } } }Este nuevo método
mainlogra varias cosas:- Crea dos objetos
Car: un automóvil moderno y un automóvil clásico. - Llama a nuestros métodos recién agregados
accelerateybrakeen el objeto de automóvil moderno. - Utiliza los métodos
getMakeAndModeleisAntiqueen el objeto de automóvil clásico. - Crea una matriz de objetos
Cary utiliza un bucle for-each para iterar sobre ellos, demostrando cómo podemos manejar colecciones de objetos.
- Crea dos objetos
Guarda ambos archivos, luego compila y ejecuta el programa
CarDemo:javac ~/project/Car.java ~/project/CarDemo.java java -cp ~/project CarDemoDeberías ver una salida similar a esta:
Car Information: Make: Toyota Model: Corolla Year: 2022 The Toyota Corolla is accelerating. The Toyota Corolla is braking. Ford Mustang is an antique: true Toyota Corolla is an antique: false Ford Mustang is an antique: true
¡Felicidades! Has ampliado significativamente tu clase Car y creado un programa más complejo utilizando objetos. Esto demuestra cómo se puede utilizar la programación orientada a objetos para modelar conceptos del mundo real en código. Cada objeto de automóvil ahora tiene sus propios datos (marca, modelo, año) y acciones (acelerar, frenar, etc.), al igual que los automóviles reales.
Agregamos métodos a nuestra clase
Carque representan acciones (accelerate()ybrake()). Si bien estos métodos no alteran el estado del automóvil en nuestra implementación actual, en un programa más complejo, podrían modificar atributos como la velocidad o el nivel de combustible.Agregamos
getMakeAndModel(), que combina dos piezas de información en una sola cadena. Este es un patrón común en la programación orientada a objetos: crear métodos que ofrezcan un acceso conveniente a los datos del objeto.El método
isAntique()muestra cómo se pueden combinar los datos del objeto (el año del automóvil) con información externa (el año actual) para obtener nueva información sobre un objeto.En nuestra clase
CarDemo, demostramos cómo crear y usar múltiples objetos, cómo llamar a varios métodos en estos objetos y cómo iterar a través de una matriz de objetos.
Este ejemplo demuestra el poder de la programación orientada a objetos. Hemos creado una clase Car que encapsula tanto datos (marca, modelo, año) como comportamiento (acelerar, frenar, isAntique). Cada objeto Car que creamos es independiente, con su propio conjunto único de datos, pero todos siguen el mismo conjunto de acciones definidas por la clase.
Resumen
En este laboratorio, hemos avanzado significativamente en nuestro viaje de programación en Java. Hemos cubierto algunos conceptos básicos pero esenciales que son fundamentales para escribir programas Java más complejos y organizados. Resumamos lo que hemos aprendido:
Métodos:
- Creamos y utilizamos métodos para estructurar nuestro código y hacerlo más reutilizable.
- Exploramos cómo los métodos pueden aceptar parámetros y devolver valores, lo que nos permite dividir problemas complejos en tareas más pequeñas y manejables.
- Los métodos nos ayudan a reducir la repetición de código y a hacer nuestros programas más fáciles de comprender y mantener.
Clases y Objetos:
- Introdujimos el concepto de clases como planos para crear objetos.
- Construimos una clase
Carcon atributos (marca, modelo, año) y métodos (displayInfo, accelerate, brake, etc.). - Aprendimos cómo instanciar objetos (instancias de una clase) y llamar a métodos en esos objetos.
Programación Orientada a Objetos:
- Observamos cómo la programación orientada a objetos nos permite modelar ideas del mundo real en nuestro código.
- Encapsulamos datos (atributos) y comportamiento (métodos) dentro de nuestra clase
Car. - Creamos múltiples objetos
Car, demostrando cómo cada objeto tiene su propio conjunto de datos pero comparte las mismas acciones definidas por la clase.
Funcionalidad Mejorada de la Clase:
- Ampliamos nuestra clase
Carcon métodos más complejos, incluyendo uno que utiliza las herramientas de fecha incorporadas de Java para determinar si un automóvil es un automóvil antiguo. - Vimos cómo los métodos pueden interactuar con los datos del objeto y la información externa para generar nueva información.
- Ampliamos nuestra clase
Trabajando con Múltiples Objetos:
- Creamos una matriz de objetos
Car, demostrando cómo trabajar con colecciones de objetos en nuestros programas.
- Creamos una matriz de objetos
Estos conceptos forman la base de la programación en Java y son esenciales para crear aplicaciones más grandes y complejas. A medida que continúes tu viaje en Java, encontrarás que utilizarás estos conceptos una y otra vez.
Recuerda, dominar la programación requiere práctica constante. Aquí hay algunas ideas para ampliar tu aprendizaje:
- Intenta agregar más atributos a la clase
Car, comocoloromileage(kilometraje). - Crea métodos que modifiquen estos atributos, como
paint(String newColor)(pintar con un nuevo color) odrive(int miles)(conducir una cantidad de millas). - Crea una clase
Garage(garaje) que pueda almacenar múltiples objetosCar. Agrega métodos para agregar automóviles al garaje, quitar automóviles y mostrar todos los automóviles en el garaje. - Experimenta creando clases para otros tipos de objetos, como
Book(libro) oStudent(estudiante).
Sigue codificando, sigue explorando y, lo más importante, sigue divirtiéndote. Estás en el buen camino para convertirse en un programador Java competente.



