Contenido del curso

Construcción de clases y modelado de objetos

Clases y objetos en Java desde cero

Resumen

Crear objetos en Java empieza por entender que cada objeto nace de una clase, una especie de molde donde defines qué datos guarda y qué acciones puede ejecutar. Si estás aprendiendo programación orientada a objetos, dominar la creación de clases en Java es el primer paso para construir aplicaciones reales como una plataforma de streaming.

Aquí verás cómo organizar paquetes, declarar atributos, escribir métodos e instanciar objetos siguiendo un ejemplo práctico: una clase Pelicula y una clase Usuario dentro de un proyecto llamado Platzi Play.

¿Cómo se organiza un proyecto Java con paquetes?

Antes de crear cualquier clase, conviene estructurar el proyecto en packages para mantener el código ordenado y escalable.

Dentro de platzi.play se crea un paquete llamado contenido que albergará la clase Pelicula, y otro paquete hermano llamado plataforma para la clase Usuario. Esta separación refleja la lógica del dominio: el contenido por un lado y los actores que lo consumen por el otro [01:25].

¿Por qué usar paquetes en Java? Los paquetes agrupan clases relacionadas, evitan conflictos de nombres y hacen tu proyecto más mantenible cuando crece.

Una recomendación que se repite siempre: nombra las clases con la primera letra en mayúscula y en singular. Pelicula, no peliculas ni películas. Tampoco uses la ñ ni caracteres especiales, porque se consideran problemáticos en código.

¿Qué atributos y métodos definen una clase en Java?

Una clase tiene dos zonas claras: atributos arriba, métodos abajo. Esa convención facilita leer el código y entender qué representa cada objeto.

Atributos: los datos que guarda el objeto

La clase Pelicula declara estos atributos públicos:

  • String titulo para el nombre.
  • String descripcion para la sinopsis.
  • int duracion para los minutos.
  • String genero para la categoría.
  • int anioEstreno para el año de lanzamiento.
  • double calificacion para la nota.
  • boolean disponible, donde true indica que la película está activa en la plataforma y false que no lo está [02:30].

El tipo boolean en Java se escribe completo, no como en otros lenguajes donde se abrevia. Y los enteros usan int, mientras los decimales usan double.

Métodos: lo que el objeto puede hacer

La clase incluye cuatro métodos que dan vida a la película:

  1. reproducir() no recibe parámetros y solo imprime un mensaje con System.out.println indicando qué título se está reproduciendo.
  2. obtenerFichaTecnica() retorna un String con título, año, género y calificación, usando \n para generar saltos de línea dentro del mensaje.
  3. calificar(double calificacion) recibe un parámetro y valida con un if que el valor esté entre 0 y 5 antes de asignarlo.
  4. esPopular() retorna un boolean: la película es popular si su calificación es mayor o igual a 4 [05:55].

En el método calificar aparece una palabra clave fundamental: this.

¿Para qué sirve this en Java? this indica que te refieres al atributo del objeto, no al parámetro local. Sin this, asignarías la variable a sí misma y el atributo nunca se actualizaría.

IntelliJ marca this.calificacion con un color distinto (lila o morado) para diferenciarlo del parámetro calificacion que llega al método. Esa distinción visual ayuda a evitar errores silenciosos.

¿Cómo se instancia un objeto a partir de una clase?

Una clase es solo el molde. Para usarla necesitas crear una instancia con la palabra reservada new.

En el main se escribe:

java Pelicula pelicula = new Pelicula(); pelicula.titulo = "El Señor de los Anillos"; pelicula.anioEstreno = 2001; pelicula.genero = "Fantasía"; pelicula.calificar(4.7); System.out.println(pelicula.obtenerFichaTecnica());

Esa operación se llama instanciar. A partir de un mismo molde puedes crear cuántas películas quieras, cada una con sus propios valores [08:40].

IntelliJ muestra automáticamente el nombre del parámetro al lado del valor (calificacion: 4.7) como ayuda visual, pero ese texto no forma parte del código real.

¿Cómo interactúan dos clases entre sí?

Una clase puede usar otra clase como tipo de dato, y ahí es donde la programación orientada a objetos se vuelve poderosa.

La clase Usuario vive en el paquete plataforma y define dos atributos básicos: nombre y email. También declara un método ver(Pelicula pelicula) que recibe un objeto Pelicula como parámetro [10:50].

Dentro del método ver, el usuario imprime un mensaje y llama a pelicula.reproducir(), reutilizando el comportamiento ya definido en la otra clase. Eso se llama composición: combinar objetos para construir comportamientos más complejos.

En el main el flujo queda así:

java Usuario usuario = new Usuario(); usuario.nombre = "Juan"; usuario.ver(pelicula);

La salida en consola muestra primero "Juan está viendo" y luego "Reproduciendo El Señor de los Anillos". Dos clases, dos responsabilidades, un solo flujo coherente.

¿Qué diferencia hay entre clase y objeto en Java? La clase es la plantilla que define estructura y comportamiento. El objeto es una instancia concreta creada con new, con sus propios valores en memoria.

Con estos bloques (paquetes, atributos, métodos, this, instanciación y composición) ya tienes la base para modelar cualquier dominio en Java. ¿Qué otros atributos le agregarías a la clase Usuario para tu propia plataforma de streaming? Cuéntame en los comentarios.